预置的类属性和方法

预置的类属性和方法

__dict__
__doc__
__class__
__base__
* __dict__属性
__dict__属性绑定一个存储此实例自身变量的字典
实例的对象属性都在 dict 的字典内,是一个个的键值对
键:值   属性名:属性值

class Dog:
    pass

print(Dog.__dict__)
# mappingproxy({'__weakref__': <attribute '__weakref__' of 'Dog' objects>, '__doc__': None, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'Dog' objects>})

dog1 = Dog()
print(dog1.__dict__)  # {}
dog1.color = '白色'
print(dog1.__dict__)  # {'color':'白色'}
  • __class__ 属性
    ‘__class__’ 属性绑定创建此实例的类
    *作用:
    可以借助此属性来访问创建此实例的类
    示例见:
class Dog:
    pass

print(Dog)
# <class '__main__.Dog'>
dog1 = Dog()
print(dog1.__class__)
# <class '__main__.Dog'>
dog2 = dog1.__class__()
print(dog2.__class__)
# <class '__main__.Dog'>
  • 类的 __name__ 属性
    • __name__ 属性绑定此类的名字
class Dog():
    pass

print(Dog.__name__)
# 'Dog'
  • 类的 __doc__ 属性
    • __doc__ 属性绑定此类的文档字符串,就是定义类语句下面的第一个文档字符串
    • 说明:
      类内的第一个没有赋值给任何变量的字符串为类的文档字符串
      类的文档字符串可以通过help()函数查看
      类的文档字符串绑定在类的 __doc__ 属性上
class Dog:
    '''这是一个狗类'''
    pass

print(Dog.__doc__)
# 这是一个狗类


类的 \__base__ 属性
    \__base__ 属性用来记录此类的基类

class Human:
    pass

class Student(Human):
    pass

class Teacher(Student):
    pass

print(Teacher.__base__)
<class '__main__.Student'>
print(Student.__base__)
<class '__main__.Human'>
print( Human.__base__)
<class 'object'>
print(object.__base__)
None  

猜你喜欢

转载自blog.csdn.net/fayzoro/article/details/82177230
今日推荐