内置属性指的是我们创建类的时候系统自动给我们添加的属性(其实是通过继
class Person:
"""说明文档:人类"""
# 类的字段
num = 61
# __slots__ = ('name', 'age', 'sex')
# 对象属性
def __init__(self, name='', age=0, sex='男'):
self.name = name
self.age = age
self.sex = sex
def eat(self, food):
print('%s在吃%s' % (self.name, food))
# 定制对象的打印格式(当我们通过print打印一个对象的时候,实质就是打印对象调用__repr__函数的返回值)
# 这个函数的返回值必须是字符串
def __repr__(self):
# return '<%s.%s object at %s>' % (self.__class__.__module__, self.__class__.__name__, hex(id(self)))
return '<' + str(self.__dict__)[1:-1] + ' at ' + hex(id(self)) + '>'
def main():
""""""
p1 = Person('小明', 18)
print(p1) # print(p1.__repr__())
persons = [Person('p1', 12), Person('p2', 18, '女')]
print(persons)
1. 类.__name__ - 获取的名字(字符串)
print(Person)
class_name = Person.__name__
print(Person, class_name)
# 值是一个字符串,可以当成字符串来用
print(class_name.upper())
2. 对象.__class__ - 获取对象对应的类(结果是类)
# 获取对象p1的类
my_class = p1.__class__
print(my_class)
# 可以将my_class当成类来使用
p2 = my_class('小花')
print(my_class.num)
3. 类.__doc__ - 获取类的说明文档(字符串)
print(Person.__doc__)
print(int.__doc__)
# 获取对象p1对应的类的说明文档
print(p1.__class__.__doc__)
4.对象.__dict__ - 将对象转换成字典,将属性和值作为字典的键值对(字典)
# 注意:当给__slots__属性赋值后,对象的__dict__属性就不能使用
print(p1.__dict__)
5.类.__module__ - 获取当前类所在的模块的模块名
print(Person.__module__)
6.类.__bases__ - 获取当前类的父类(元祖)
print(Person.__bases__)
网友评论