python在定义类的时候系统自动添加的属性(从基类中继承下来的属性)就是内置属性
class Student: def __init__(self, name, age): self.name = name self.age = age class Dog: # 类属性 num = 100 # __slots__ = # 对象属性 def __init__(self, name, age=1, color='白色'): self.name = name self.age = age self.color = color # 方法 def eat(self, food): print(print(f'{self.name}在吃{food}')) @classmethod def show_num(cls): print(f'狗的数量:{cls.num}') @staticmethod def bark(): print('汪汪汪') def __repr__(self): c = self.__class__ m = c.__module__ return f'<{m}模块.{c.__name__}类的对象:name={self.name},age={self.age},color={self.color}>'1.module 类属性; 类.module - 获取定义的模块的模块名
print(Dog.__module__) print(int.__module__)2.class 对象.class - 获取对象对应的类
dog1 = Dog('大黄') print(dog1.__class__) print(type(dog1))3.name 类.name - 获取类名
print(Dog.__name__) # Dog重写repr方法,要求以:xxx模块.xxx类的对象:属性1 = 值1,属性2 = 值2
dog2 = Dog('财财') print(dog2)4.dict 类.dict - 将类转换成字典(类的类属性名作为key,类属性的值作为值) 对象.dict - 将对象转换成字典(对象属性名作为key,属性的值作为值)
print(Dog.__dict__) print(dog1.__dict__)5.doc 类.doc - 获取类的说明文档
print(list.__doc__)6.base 类.base - 获取当前类的父类 类.bases - 获取当前类所有的父类
print(Dog.__base__) # <class 'object'>7.slots 可以约束当前类的对象能够拥有哪些对象属性 注意:如果给类属性__slots__赋值了,那么这个类的对象不能再使用__dict__属性
class Person: __slots__ = ('name','age') def __init__(self,name,age=10): self.name = name self.age = age