内置属性

内置属性指的是我们创建类的时候系统自动给我们添加的属性(其实是通过继

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__)

你可能感兴趣的:(内置属性)