Junior
178
Ինչպես են իրականացվում ստատիկ մեթոդները Python-ում?
Պատասխան AI-ից
sobes.tech AI
Ստատիկ մեթոդը կապված չէ դասի օրինակին կամ ինքնին դասին: Այն պահվում է որպես սովորական ֆունկցիա, բայց գտնվում է դասի անունային տարածքում:
Ներդրվում է @staticmethod դեկորատորով:
class MyClass:
def __init__(self, value):
self.value = value
def instance_method(self):
# Օրինակային մեթոդը ունի հասանելիություն self-ին
print(f"Օրինակային մեթոդը: {self.value}")
@classmethod
def class_method(cls):
# Դասի մեթոդը հասանելի է դասին `cls`-ով
print(f"Դասի մեթոդը: {cls.__name__}")
@staticmethod
def static_method(x, y):
# Ստատիկ մեթոդը չի ստանում անուղղակի արգումենտներ (self կամ cls)
print(f"Ստատիկ մեթոդը: {x + y}")
# Ստատիկ մեթոդի կանչը
MyClass.static_method(5, 10)
# Կարող է նաև կանչել օրինակով, բայց դա չի խորհուրդ տրվում
obj = MyClass(20)
obj.static_method(1, 2)
Հիմնական հատկանիշներ՝
- Չընդունում է անուղղակի առաջին արգումենտ (
selfկամcls) - Չունի հասանելիություն օրինակային կամ դասային հատկություններին
- Կենտրոնացած է դասի անունային տարածքում՝ տրամաբանական խմբավորման համար
- Կարող է կանչվել ինչպես դասի, այնպես էլ օրինակով (փոխարենը՝ կանչը դասով ավելի նախընտրելի է)
Հիմնական նպատակը՝ օգնական ֆունկցիաներ, որոնք կապված են դասի հետ, բայց չեն կախված կոնկրետ օրինակից կամ դասից ինքնից (օրինակ՝ օգնական ֆունկցիաներ, վալիդատորներ, գեներատորներ, որոնք տրամաբանականորեն դասին պատկանել են):