переменный класс питона (атрибуты) и переменный экземпляр (атрибуты

ДЕНЬ 4. Переменные класса (атрибуты) и переменные экземпляра (атрибуты)

  • Переменные класса: между экземплярами всех классов могут совместно использовать переменные, переменные класса, чтобы сохранить только одну копию всех объектов в комнате
    • Определено в теле класса
    • Все экземпляры классов объектов могут получить доступ к переменным класса
    • Переменный класс может быть изменена только по классу, экземпляр объект доступны только для чтения
    • Использование 对象名.类变量名 = new valueне используются для изменения атрибута класса объекта, но , чтобы добавить новые объекты недвижимости
class Demo:
    # 类变量
    classVar = 0
    def __init__(self):
        self.instanceVar = 1

if __name__ == '__main__':
    demo1 = Demo()
    demo2 = Demo()
    # 类的所有实例对象都可以访问类变量
    print(demo1.classVar)  # 0
    print(demo2.classVar)  # 0
    # 由类修改类变量
    Demo.classVar = 2
    print(demo1.classVar)  # 2
    print(demo2.classVar)  # 2
    # 注意,这样不是在修改类变量,而是给实例对象添加了一个属性
    demo1.classVar = 2
    print(demo1.classVar)  # 2
  • Переменные: когда инстанцирование объектов, каждый из них будет иметь свой собственный переменный экземпляр, переменные экземпляра не влияют между
    • Определено в конструкторе
    • Изменить переменный экземпляр экземпляра объекта, экземпляр класса переменные не изменял смысл
    • Каждый экземпляр объекта имеет переменный экземпляр
class Demo:
    # 类变量
    classVar = 0
    def __init__(self):
        # 实例变量
        self.instanceVar = 1

if __name__ == '__main__':
    print(demo1.instanceVar)  # 1
    print(demo2.instanceVar)  # 1
    # 各实例对象间的实例变量互相不影响
    demo1.instanceVar = 2
    print(demo1.instanceVar)  # 2
    print(demo2.instanceVar)  # 1
    # 用类修改实例变量没意义
    Demo.instanceVar = 2
    print(demo1.instanceVar)  # 2
    print(demo2.instanceVar)  # 1

4,1 резюме

Переменная (атрибут) Определения Читать модификация память
переменные класса Определено в теле класса className.classVarиobjectName.classVar className.classVar = new value Просто сохраните копию
переменные экземпляра Определено в конструкторе objectName.instanceVar objectName.instanceVar = new value Каждый экземпляр объекта имеет, среди объектов, независимо друг от друга

** Примечание: ** использование objectName.classVar = new valueподлежит добавить новое свойство

Ссылка в статье:

GitHub лицо вопросы питона

Python (классы и объекты переменных классов и атрибутов класса)

Часть V иллюстрирует Python []: объектно-ориентированное - класс - первичная Основы

Опубликовано 62 оригинальные статьи · вона похвала 33 · просмотров 10000 +

рекомендация

отblog.csdn.net/zjbyough/article/details/95934888