Свойства класса
Свойство — это переменная, которая находится в классе. Она хранит данные каждого объекта, созданного на основе этого класса.
Пример
Класс со свойствами:
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1.name)
print(p1.age)
Доступ к свойствам
Прочитать свойство объекта можно с помощью точечной нотации:
Пример
Прочитайте свойства объекта:
Вывод: полная программа на Python
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
car1 = Car("Toyota", "Corolla")
print(car1.brand)
print(car1.model)
Изменение свойств
Значение свойства объекта можно изменить:
Пример
Обновите свойство age:
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Tobias", 25)
print(p1.age)
p1.age = 26
print(p1.age)
Удаление свойств
Ключевое слово del удаляет свойство объекта:
Пример
Удалите свойство age:
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Linus", 30)
del p1.age
print(p1.name) # Это работает
# print(p1.age) # Это вызвало бы ошибку
Свойства класса и свойства объекта
Свойство, определённое внутри __init__(), принадлежит каждому отдельному объекту (свойство экземпляра).
Свойство, определённое вне всех методов, принадлежит самому классу (свойство класса) и является общим для всех объектов:
Пример
Свойство экземпляра рядом со свойством класса:
Вывод: полная программа на Python
class Person:
species = "Human" # Свойство класса
def __init__(self, name):
self.name = name # Свойство экземпляра
p1 = Person("Emil")
p2 = Person("Tobias")
print(p1.name)
print(p2.name)
print(p1.species)
print(p2.species)
Изменение свойств класса
Изменение свойства класса меняет его для всех объектов:
Пример
Присвойте свойству класса новое значение:
Вывод: полная программа на Python
class Person:
lastname = ""
def __init__(self, name):
self.name = name
p1 = Person("Linus")
p2 = Person("Emil")
Person.lastname = "Refsnes"
print(p1.lastname)
print(p2.lastname)
Добавление новых свойств
Уже существующий объект всё ещё может получать новые свойства:
Примечание: свойство, добавленное таким образом, существует только у этого объекта, а не у остальных.
Пример
Добавьте объекту дополнительное свойство:
Вывод: полная программа на Python
class Person:
def __init__(self, name):
self.name = name
p1 = Person("Tobias")
p1.age = 25
p1.city = "Oslo"
print(p1.name)
print(p1.age)
print(p1.city)