Loading...
Python

Կարող եք ձեր կոդը փորձարկել այստեղ

Python

Գլուխ 3. Օբյեկտ-կողմնորոշված ծրագրավորում

կլասի օբյեկտ. Օբյեկտի String-ի ներկայացում

Սկսած 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

Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել