问题描述
注意:这个问题不是关于
在以下课程中,
MyClass1.py
class MyClass1:
__module_attr: str = "initial text value"
def __init__(self):
self.__instance_attr: str = "instance text value"
@classmethod
def cls_modify(cls):
cls.__module_attr = "class text value"
@staticmethod
def stat_display():
print(MyClass1.__module_attr)
if __name__ == '__main__':
my_obj = MyClass1()
my_obj.stat_display()
my_obj.cls_modify()
my_obj.stat_display()
MyClass2.py
class MyClass2:
module_attr: str = "initial text value"
def __init__(self):
self.__instance_attr: str = "instance text value"
@classmethod
def cls_modify(cls):
cls.module_attr = "class text value"
@staticmethod
def stat_display():
print(MyClass2.module_attr)
if __name__ == '__main__':
my_obj = MyClass2()
my_obj.stat_display()
my_obj.cls_modify()
my_obj.stat_display()
print(my_obj.module_attr)
print(MyClass2.module_attr)
所以,我看不出一种类型比另一种有什么优势。
我什么时候应该更喜欢 @classmethod
而不是 @staticmethod
,反之亦然?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)