【发布时间】:2019-04-12 09:08:37
【问题描述】:
使用参数“self”的方法“print”声明一个类:
class First:
def print(self):
print('working')
return 2
尝试在不实例化类的情况下调用方法:First.print() 收到以下消息:
TypeError: print() missing 1 required positional argument: 'self'
现在在实例化类和访问方法时:它正在工作。
first = First()
first.print()
# working
# 2
现在在方法 print 中定义没有任何参数的同一个类:
class First:
def print():
print('working')
return 2
在不实例化类的情况下调用相同的方法并且它正在工作:
First.print()
# working
# 2
没有定义方法参数,python 方法的行为类似于静态。是真的还是别的什么?
【问题讨论】:
-
请更正您问题的格式(尤其是源代码)
-
在第一次执行中,您尝试调用它而不实例化它,因此没有“自我”传递给该方法,这就是它失败的原因。
-
在那个例子中显然是一个不使用self的静态方法,比如你的第二个例子。您可以在相关问题stackoverflow.com/questions/18679803/… 中查看更多示例
-
非常感谢您的澄清..