• 【python】属性


    在python中,一切皆是对象(object),对象拥有很多属性(arrtribute)

    属性分2种

    类属性(class attribute):类自身定义or继承

    对象属性(object attribute):该对象实例定义的

    保留属性:(=对象属性??)

    >>> Class1.__doc__       # 类型帮助信息 'Class1 Doc.'   
    >>> Class1.__name__      # 类型名称 'Class1'   
    >>> Class1.__module__    # 类型所在模块 '__main__'   
    >>> Class1.__bases__     # 类型所继承的基类 (<type 'object'>,)   
    >>> Class1.__dict__      # 类型字典,存储所有类型成员信息。 <dictproxy object at 0x00D3AD70>   
    >>> Class1().__class__   # 类型 <class '__main__.Class1'>   
    >>> Class1().__module__  # 实例类型所在模块 '__main__'   
    >>> Class1().__dict__    # 对象字典,存储所有实例成员信息。 {'i': 1234}  

    对象的属性???(感觉教程写错了,应该是类属性)储存在对象的__dict__属性中。__dict__为一个词典,键为属性名,对应的值为属性本身。

    class Bird:
        #鸟类父类
        have_feater=True            #属性  'have_feater': True
        way_of_reproduction="egg"   #属性  'way_of_reproduction': 'egg'
        song="叽叽喳喳"             #属性   'song': '叽叽喳喳'
        def sing(self):             # 'sing': <function Bird.sing at 0x0000000001F0BB70>,
            print(self.song)
        def move(self):             #'move': <function Bird.move at 0x0000000001F0BBF8>,
            print("飞飞飞")
    #属性   '__weakref__': <attribute '__weakref__' of 'Bird' objects>,
    #属性   '__doc__': None,
    #属性   '__dict__': <attribute '__dict__' of 'Bird' objects>,
    #属性   '__module__': '__main__
    
    class Chicken(Bird):
        #鸟类子类
        song="oooooo"                   #属性   'song': 'oooooo'
        def __init__(self,name):        #属性   '__init__': <function Chicken.__init__ at 0x0000000001F0BC80>
            self.name=name
        def move(self):                 #属性  'move': <function Chicken.move at 0x0000000001F0BD08>
            print("跑跑跑")
    #属性   '__doc__': None,
    #属性    '__module__': '__main__'
    
    myChicken=Chicken("QQ")             #属性   'name': 'QQ'
    
    #如果只有对象名,可以通过__class__得到类,然后__base__得到父类
    print(myChicken.__class__.__base__)
    
    print(Bird.__dict__)
    print(Chicken.__dict__)
    print(myChicken.__dict__)
  • 相关阅读:
    SANBA服务和FTP服务
    rpm和yum软件管理
    Linux进程管理
    Linux网络技术管理
    RAID磁盘阵列及CentOS7启动流程
    Linux磁盘管理及Lvm
    Linux计划任务及压缩归档
    Linux权限管理
    Linux用户及用户组管理
    vim 编辑器
  • 原文地址:https://www.cnblogs.com/mogujiang/p/6184516.html
Copyright © 2020-2023  润新知