Sobes.tech
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)
  • Չունի հասանելիություն օրինակային կամ դասային հատկություններին
  • Կենտրոնացած է դասի անունային տարածքում՝ տրամաբանական խմբավորման համար
  • Կարող է կանչվել ինչպես դասի, այնպես էլ օրինակով (փոխարենը՝ կանչը դասով ավելի նախընտրելի է)

Հիմնական նպատակը՝ օգնական ֆունկցիաներ, որոնք կապված են դասի հետ, բայց չեն կախված կոնկրետ օրինակից կամ դասից ինքնից (օրինակ՝ օգնական ֆունկցիաներ, վալիդատորներ, գեներատորներ, որոնք տրամաբանականորեն դասին պատկանել են):