为什么这个脚本需要“self”作为第 3 行 mssg() 的参数?PyCharm 在第 3 行将“self”标记为,预期类型为“Another”,却得到了“Main”。这个警告对我来说很有意义(尽管代码有效)。当省略“self”时,Python 会抛出错误:类型错误:mssg() 缺少 1 个必需的位置参数:'self'class Main(): def __init__(self): print(Another.mssg(self))class Another(): def __init__(self): pass def mssg(self): return "Hello World"_foo = Main()根据您的指导,以下是防止 TypeError 的三种不同方法:class Main(): def __init__(self): print(Another.mssg('asdasdsa')) print(Another().mssg()) print(_bar.mssg())class Another(): def __init__(self): pass def mssg(self): return "Hello World"_bar = Another()_foo = Main()
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
如果您使用Another.mssg(self)
,那么您正在调用一个类方法,这就是为什么self
将其作为参数,并且您需要仅使用一个参数来调用该函数。尝试一下print(Another.mssg('asdasdsa'))
,你会发现它有效。
如果您的意图是用作mssg(self)
实例方法,那么您应该使用调用它print(Another().mssg())
,这样您就创建了实例,然后调用它的方法。
添加回答
举报
0/150
提交
取消