Python 中的类和静态方法有什么区别,因为在静态方法中,您只能通过名称而不是 cls 访问类?

问题描述

以下是类方法和静态方法具有相同行为的示例。

class MyClass:
    data = 'stuff'

    @classmethod
    classModifyData(cls,newData):
        cls.data = newData

    @staticmethod
    staticModifyData(newData);
        MyClass.data = newData

这是行为......

myClassInstance = MyClass()
print(MyClass.data)
#stuff

print(myClassInstance.data)
# stuff

MyClass.classModifyData('class method modified stuff')
print(MyClass.data)
# class method modified stuff

print(myClassInstance.data)
# class method modified stuff

MyClass.staticModifyData('static method modified stuff')
print(MyClass.data)
# static method modified stuff

print(myClassInstance.data)
# static method modified stuff

我假设 @classmethod 有更复杂的用法,您不能使用 @staticmethod 但我还没有找到。对此的任何澄清都会有所帮助。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)