Proprietățile clasei
O proprietate este o variabilă care se află într-o clasă. Ea stochează date pentru fiecare obiect construit din acea clasă.
Exemplu
O clasă care are proprietăți:
Ieșire: program Python complet
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1.name)
print(p1.age)
Accesarea proprietăților
Notația cu punct este modul în care citești o proprietate a unui obiect:
Exemplu
Citește proprietățile unui obiect:
Ieșire: program Python complet
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
car1 = Car("Toyota", "Corolla")
print(car1.brand)
print(car1.model)
Modificarea proprietăților
Poți schimba valoarea unei proprietăți a unui obiect:
Exemplu
Actualizează proprietatea age:
Ieșire: program Python complet
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)
Ștergerea proprietăților
Cuvântul cheie del elimină o proprietate a unui obiect:
Exemplu
Elimină proprietatea age:
Ieșire: program Python complet
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Linus", 30)
del p1.age
print(p1.name) # Aceasta funcționează
# print(p1.age) # Aceasta ar provoca o eroare
Proprietățile clasei vs proprietățile obiectului
O proprietate definită în interiorul __init__() aparține fiecărui obiect (o proprietate a instanței).
Una definită în afara oricărei metode aparține clasei însăși (o proprietate a clasei), iar toate obiectele o împart:
Exemplu
O proprietate a instanței alături de o proprietate a clasei:
Ieșire: program Python complet
class Person:
species = "Human" # Proprietate a clasei
def __init__(self, name):
self.name = name # Proprietate a instanței
p1 = Person("Emil")
p2 = Person("Tobias")
print(p1.name)
print(p2.name)
print(p1.species)
print(p2.species)
Modificarea proprietăților clasei
Dacă schimbi o proprietate a clasei, o schimbi pentru toate obiectele:
Exemplu
Atribuie o valoare nouă unei proprietăți a clasei:
Ieșire: program Python complet
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)
Adăugarea de proprietăți noi
Un obiect care există deja poate primi în continuare proprietăți noi:
Notă: O proprietate adăugată astfel există doar pe acel obiect, nu și pe celelalte.
Exemplu
Dă unui obiect o proprietate în plus:
Ieșire: program Python complet
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)