预置的类属性和方法
__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