内置属性
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