Böyle bir şeyi başarmanın bir yolu var mı? Sınıf özniteliklerinde kalıtım (python)
class Parent():
class_attribute = "parent"
@staticmethod
def class_method():
print __class__.class_attribute
class Child(Parent):
class_attribute = "child"
Ben doğrudan
__class__
arayamam biliyorum ... Python içinde çalışır, ancak ben herhangi bir programlama dilinde bunu yapmanın bir yolu varsa emin değilim. Onun sadece bir örneği, çünkü sınıfın kendisine atıfta bulunmak gibi bir şey isterdim, çünkü çocuk sınıfının class_attribute'una göre farklı davranmasını istiyorum. Böyle
Sonra sözde çıkış olmalıdır:
> Parent.class_method()
"parent"
> Child.class_method()
"child"
Aynı tekniği örnekleri üzerinden gerçekleştirmek olabilir biliyorum. Ancak, örnek oluşturmak istemiyorum, çünkü bazen __init__
yöntemindeki kod uzun ve zorlu olabilir ve eğer class_method
'u sık sık aramak istersem, sadece bu tek yöntem çağrısı için kullanılan birçok örnek oluşturmam gerekirdi. Ve class_attribute
ve class_method
statik olduğundan ve örneklerle değiştirilmeyeceği için.
Basitçe 'statik' işlevlerinden mi bahsediyorsunuz? – Tigran