Junior — Middle
Կարող եք բացատրել, թե ինչ է նշանակում 'deskriptor' տերմինը Python-ի համատեքստում և ինչպես է այն աշխատում?
sobes.tech AI
Պատասխան AI-ից
Python- ում, դեսքրիպտորը օբյեկտ է, որը կառավարում է մյուս օբյեկտի հատկությունների մուտքը։ Այն իրականացնում է մեկ կամ մի քանի հատուկ մեթոդներ՝ __get__, __set__ և __delete__։ Երբ պահանջվում է դեսքրիպտորով նշված հատկությունը, այն սահմանվում կամ ջնջվում է, կանչվում են համապատասխան մեթոդները։
Այսպիսով, դա թույլ է տալիս վերահսկել հատկությունների վարքագիծը, օրինակ՝ հաշվարկվող հատկությունների, արժեքների վավերացման կամ սակավագույքային սկզբնականացման իրականացման համար։
Պարզ դեսքրիպտորի օրինակ՝ արժեքի տիպը ստուգելու համար՝
class Typed:
def __init__(self, name, expected_type):
self.name = name
self.expected_type = expected_type
def __get__(self, instance, owner):
return instance.__dict__[self.name]
def __set__(self, instance, value):
if not isinstance(value, self.expected_type):
raise TypeError(f"Անկախված տիպ {self.expected_type.__name__}")
instance.__dict__[self.name] = value
class Person:
age = Typed('age', int)
p = Person()
p.age = 30 # աշխատում է
# p.age = 'երեսուն' # առաջացնում է TypeError
Այսպիսով, դեսքրիպտորները հզոր գործիք են Python- ում հատկությունների մուտքը կառավարելու համար։