当我遇到这种困境时,我正在学习Python中的类和对象.下面是两个相同代码的情况,一个没有@classmethod,另一个有@classmethod:
#without @classmethod
>>> class Human:
... name = "Rounak"
... def change_name(self, new_name):
... self.name=new_name
...
>>> Human().change_name("Agarwal")
>>> print(Human().name)
Rounak
#with @classmethod
>>> class Human:
... name = "Rounak"
... @classmethod
... def change_name(self, new_name):
... self.name=new_name
...
>>> Human().change_name("Agarwal")
>>> print(Human().name)
Agarwal
Run Code Online (Sandbox Code Playgroud)
如您所见,不使用时@classmethod,名称不会更改Rounak为Agarwal.我似乎不明白怎么做.
我@classmethod仔细阅读了Python文档中的定义,并对Stack Overflow中的各种问题进行了详细解释,@classmethod但是我仍然不明白它是如何导致输出的这种差异的.我是Python的新手,所以如果我缺少一些基础知识,请告诉我.
python ×1