装饰的功能@staticmethod和装饰的功能有什么区别@classmethod?
我正在教自己Python,我最近的教训是Python不是Java,因此我花了一些时间将所有的Class方法转换为函数.
我现在意识到我不需要使用Class方法来处理staticJava中的方法,但现在我不确定何时使用它们.我能找到的关于Python类方法的所有建议都是像我这样的新手应该避开它们,而标准文档在讨论时最不透明.
有没有人有一个在Python中使用Class方法的好例子,或者至少可以有人告诉我什么时候可以明智地使用Class方法?
我想理解__init__Python中构造函数的参数.
class Num:
def __init__(self,num):
self.n = num
def getn(self):
return self.n
def getone():
return 1
myObj = Num(3)
print myObj.getn()
Run Code Online (Sandbox Code Playgroud)
结果:3
我称之为getone()方法:
print myObj.getone()
Run Code Online (Sandbox Code Playgroud)
结果:错误'getone()'不带参数(1given).
所以我更换:
def getone():
return 1
Run Code Online (Sandbox Code Playgroud)
同
def getone(self):
return 1
Run Code Online (Sandbox Code Playgroud)
结果:1这没关系.
但getone()方法不需要参数.
我是否必须使用毫无意义的论点?