美文网首页
Python基础语法8 对象和属性的使用

Python基础语法8 对象和属性的使用

作者: 琴匣自鸣 | 来源:发表于2019-11-29 11:06 被阅读0次

    在Python中有一些方便于我们获取类信息或对象信息的类属性,如下

    dog=Pet() 

    dog.__dict__ 类的命名空间,会返回一个字典其中信息已键值对的形式存在,如果是 Pet.__dict__ 那么会返回与此类相关的所有信息,包括属性、方法、文档字符串等等。如果是dog.__dict__ 那么返回的字典只包括属性,并且静态属性只有重新赋值过才会在字典中显示

    dog.__doc__类的文档字符串信息,如果未定义那么为None

    Pet.__name__类名称,注意此属性只能给类使用

    doc.__class__获取对象的类名

    属性的增、删、改、查,在使用类和对象的使用过程中

    1.增加&&修改,在使用时如果需要临时添加属性例如:dog = Pet() dog.age=10或setattr(dog,'age',10),如果age已存在那么这里仅仅靠是赋值,如果不存在那么这里就是则增加一个age属性并赋值为10;

    2.删除,删除属性时两种情况(1)直接删除类属性 del Pet.name 或 delattr(Pet,'name') (2)删除对象属性 del dog.name 或 delattr(Pet,'name')

    注意:如果为静态属性那么,建立对象后对象属性默认值为静态属性默认值 dog.name,但是当你给属性赋值时,此时实际上是抛去引用类的静态属性新建立一个对象自己的属性只是名字一样,当对象删除该属性时此时属性又会变成引用类静态属性(Pet.name),如果此时执行第二次对象属性删除那么会报错原因是此时引用的是类属性(Pet.name)而不是对象属性。但是如果第二次删除使用类属性删除那么,再输出会发现报错,原因是类属性也被删除类和对象中都不存在该属性。
        如果是动态添加的属性,那么执行删除后会立即删除属性

    3.查询,查询是否包含此属性 hasattr(Pet,'name') 返回布尔值

    4.获取值,dog.name 或者 getattr(dog,'name')

    相关文章

      网友评论

          本文标题:Python基础语法8 对象和属性的使用

          本文链接:https://www.haomeiwen.com/subject/hzxjvftx.html