我读过方法的第一个参数是调用方法的实例。 我不明白为什么当我写这篇文章Python在使用“self”时需要位置参数
class A:
def printName(self, name):
print(name)
A.printName("asd")
我得到这个错误类型错误:printName()失踪1个人需要的位置参数:“名”。 我失踪了什么?
我读过方法的第一个参数是调用方法的实例。 我不明白为什么当我写这篇文章Python在使用“self”时需要位置参数
class A:
def printName(self, name):
print(name)
A.printName("asd")
我得到这个错误类型错误:printName()失踪1个人需要的位置参数:“名”。 我失踪了什么?
这会工作,使用staticmethod
如果你想打电话printName()
而无需创建该类的实例
class A:
@staticmethod
def printName(name):
print(name)
A.printName('hello')
感谢您的回答。 你可以解释什么是在Python中的静态方法,为什么它不需要'自我', 我试过你的代码,它甚至没有@staticmethod工程,为什么? 对不起,但我有很多麻烦理解如何工作'自我'的论点 – akerbeltz
@akerbeltz :) ** staticmethods **是绑定到类而不是它的对象的方法。他们不需要类实例'@ staticmethod'告诉我们正在使用'staticmethod'。在早期版本中,写入** staticmethod **的语法不同。你可以只是谷歌获取更多信息 – ksai
自己是'this'对象的等价物。 staticmethod不是针对不同的实例,而是绑定到一个类。 – gout
可能重复的[TypeError:缺少1所需的位置参数:'self'](https://stackoverflow.com/questions/17534345/typeerror-missing-1-required-positional-argument-self) –