• python面向对象之类属性,实例属性


     python中的属性分为类属性和实例属性,之前已经说过一些,这里主要是对类属性与实例属性的增删改查

    首先是对类属性的增删改查,下面这个是对类属性的修改,在书写类时,已经对类属性occupation进行赋了初值student,

    
    class Person(object):
        occupation = 'student'
    
        def __init__(self, name, gender, age):
            self.name = name
            self.gender = gender
            self.age = age
    
    
    print(Person.__dict__)
    stu1 = Person('ajune', '男', 18)
    stu1.occupation = 's'  # 修改类属性,但仅在该实例中有作用
    # Person.occupation = 's'  # 修改类属性,凡是由该类实例化的对象均是此值
    print(stu1.name, stu1.gender, stu1.age, stu1.occupation)
    
    stu2 = Person('ajune', '男', 18)
    print(stu2.name, stu2.gender, stu2.age, stu2.occupation)  # 类属性occupation依旧是student
    

    添加新的类属性

    stu1 = Person('ajune', '男', 18)
    Person.level = 's'  # 类中本不存在level类属性,通过此语句可以添加类属性
    print(stu1.name, stu1.gender, stu1.age, stu1.occupation, stu1.level)

    查看类属性,说是查看还是和使用类属性一样

    Person.level

    删除类属性,通过关键字del 类名.类属性即可

    del Person.level
    

     以上的这些都只是对简单数据进行操作,那我们也可以为其添加成员函数,

    def change(self):
        print('变成成员函数')
    
    Person.change = change
    stu1.change()

    实例属性

    增加实例属性,依旧是之前的类,通过stu1实例添加sport实例属性

    stu1.sport = 'basketball'

    删除实例属性

    del stu1.gender

    修改实例属性

    stu1.age = 19

    还可以通过底层的属性字典对其进行修改,但是不要这样做

  • 相关阅读:
    Jenkins和pipeline
    Docker摘要
    javascript文件加载模式与加载方法
    Pre-shared key
    持续集成CI相关的几个概念
    Fetch诞生记
    Content Security Policy介绍
    vivalidi 一款由Web技术诞生的Web浏览器
    Javascript async异步操作库简介
    Polymer初探
  • 原文地址:https://www.cnblogs.com/June-King/p/10596201.html
Copyright © 2020-2023  润新知