Կարող եք ձեր կոդը փորձարկել այստեղ
Սկսած Python ծրագրավորման լեզվի 3-րդ տարբերակից՝ բոլոր կլասերը անուղղակիորեն ունեն մեկ ընդհանուր գերկլաս՝ օբյեկտ և բոլոր կլասերը լռելյայն ժառանգում են դրա մեթոդները։
Օբյեկտների կլասի ամենաշատ օգտագործվող մեթոդներից մեկը __str__() մեթոդն է ։ Երբ դուք պետք է ստանաք օբյեկտի տողային ներկայացում կամ ելք բերեք օբյեկտը որպես տող, Python-ը կանչում է այս մեթոդը։ Իսկ կլասը սահմանելիս լավ պրակտիկա է անտեսել այս մեթոդը:
Օրինակ՝ վերցնենք Person կլասը և տպենք դրա տողերի ներկայացումը.
class Person:
def __init__(self, name, age):
self.name = name # устанавливаем имя
self.age = age # устанавливаем возраст
def display_info(self):
print(f"Name: {self.name} Age: {self.age}")
tom = Person("Tom", 23)
print(tom)
Գործարկվելիս ծրագիրը կթողարկի հետևյալի պես մի բան.
<__main__.Person object at 0x10a63dc00>
Սա օբյեկտի մասին այնքան էլ տեղեկատվական տեղեկատվություն չէ: Մենք, իհարկե, կարող ենք դուրս գալ այս իրավիճակից՝ սահմանելով լրացուցիչ մեթոդ Person կլասում, որը ցուցադրում է օբյեկտի տվյալները. վերևի օրինակում սա display_info մեթոդն է:
Բայց կա ևս մեկ ելք. եկեք սահմանենք __str__() մեթոդը Person կլասում (յուրաքանչյուր կողմում երկու ընդգծում).
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def display_info(self):
print(self)
# print(self.__str__()) # или так
def __str__(self):
return f"Name: {self.name} Age: {self.age}"
tom = Person("Tom", 23)
print(tom) # Name: Tom Age: 23
tom.display_info() # Name: Tom Age: 23
Մեթոդը __str__պետք է վերադարձնի տող: Եվ այս դեպքում մենք վերադարձնում ենք անձի մասին հիմնական տեղեկատվություն: Եթե մեզ անհրաժեշտ է օգտագործել այս տեղեկատվությունը կլասի այլ մեթոդներում, մենք կարող ենք օգտագործել արտահայտությունը self.__str__()
Եվ այժմ վահանակի ելքը տարբեր կլինի.
Name Tom Age 23 Name Tom Age 23
Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել