Sobes.tech
Junior — Middle

Ի՞նչ է Python- ում @staticmethod դեկորատորի նպատակը և ինչպե՞ս է այն տարբերվում սովորական դասի մեթոդներից։

sobes.tech AI

Պատասխան AI-ից

Python- ում @staticmethod դեկորատորը օգտագործվում է դասի ներսում մեթոդ սահմանելու համար, որը կախված չէ դասի օրինակից և ինքնաբերաբար չի ընդունում self պարամետրը:

Տարբերությունները սովորական մեթոդներից՝

  • Սովորական մեթոդները որպես առաջին պարամետր ընդունում են self — հղում ընթացիկ օրինակին:
  • Ստատիկ մեթոդները չեն ընդունում ոչ self, ոչ cls (հղում դասին):

Սա նշանակում է, որ ստատիկ մեթոդը պարզապես ֆունկցիա է, որը տրամաբանականորեն կապված է դասի հետ, բայց չի օգտագործում նրա վիճակը:

Օրինակ՝

class MyClass:
    @staticmethod
    def static_method(x, y):
        return x + y

    def instance_method(self, x, y):
        return x * y

print(MyClass.static_method(3, 4))  # 7
obj = MyClass()
print(obj.instance_method(3, 4))   # 12

Ստատիկ մեթոդները օգտակար են օգտակար ֆունկցիաների համար, որոնք իմաստ ունեն դասի կոնտեքստում, բայց չեն պահանջում մուտք գործել նրա տվյալներ: