Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法

Posted DQ_CODING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法相关的知识,希望对你有一定的参考价值。

内置属性

创建类时系统自动创建的属性


# 内置属性:dir(对象),列出所有的内置属性
class Person(object):
    '''Person类1'''
    # Person类2
    __slots__ = ('name', 'age')

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print("eat!!!")


p = Person('name',17)
print(dir(p))
# 输出
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'eat']
print(p.__class__)
#将对象所支持的所有属性和函数列出。
print(p.__dir__)
#显示的是多行注释
print(p.__doc__)
print(Person.__doc__)
#主方法
print(p.__module__)

对象属性

类属性



# 类属性
class Person(object):
    type = 'mm'
    __slots__ = ('name', 'age')

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self):
        print("eat!!!")

p=Person('name',19)
#通过对象和类名调用类属性
print(p.type)
print(Person.type)
#只能通过类名修改类属性
Person.type='upq'
print(Person.type)
print(p.type)
#输出
# mm
# mm
# upq
# upq

私有属性




# 私有属性
class Teacher():
  def __init__(self):
    self.__name='ert'
    self.__level=99
  #获取老师的等级
  def get_level(self):
    return self.__level
  #获取名字
  def get_in_name(self):
    return self.__name
  def set_in_name(self,name):
      self.__name=name
t=Teacher()
# #获取私有属性1
print("name is",t._Teacher__name)      #输出GG
t._Teacher__name="AA"            #被改变了
print("name is",t._Teacher__name)      #输出AA
#获取私有属性2
t.set_in_name('pppp')
print(t.get_in_name())

#输出
# name is GG
# name is AA
# pppp



私有方法


#function:私有方法
class Person(object):
    def __init__(self):
        self.__p=100
    def __xx(self):
        print(self.__p)
p1=Person()
print(p1._Person__p)
p1._Person__xx()

实例方法


类方法


静态方法



总结:实例方法 & 类方法 & 静态方法

静态方法:当用不到当前类和对象属性时(感觉与当前类没关系一样),可以定义为静态方法(一个定义在类中的普通方法)

# author:dq
# project:PythonProject
# date:2021年10月21日
# function:实例方法 & 类方法 & 静态方法

class Person():
    type = 'type'
    __slots__ = ('name', 'age')

    def __init__(self, name, age):
        self.name = name
        self.age = age
        # 实例方法

    def common(self):
        print('common')
        # 类方法

    @classmethod
    def classmethod(cls):
        cls.type = 'class type'
        print(cls.type)
        print('classmethod')
        # 静态方法

    @staticmethod
    def staticmethod():

        print('static')
p=Person('name',77)
#对象调用
p.common()
p.classmethod()
p.staticmethod()
#类调用
Person.common(p)
Person.classmethod()
Person.staticmethod()



以上是关于Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法的主要内容,如果未能解决你的问题,请参考以下文章

28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性

28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性

28.Python面向对象类:创建类&实例对象,私有属性,类里面的方法,类属性CRUD,常用内置类属性

Python中类的属性方法及内置方法

Python3 - self语法面向对象内置属性魔法方法

Python3 - self语法面向对象内置属性魔法方法