【发布时间】:2015-11-20 12:20:16
【问题描述】:
我对 python 完全陌生,对我来说,我经历过奇怪的行为。我有两个文件:foo.py 和 test.py
test.py:
from foo import Foo
f = Foo()
f.bar(1)
当我的 foo.py 看起来像这样时:
class Foo:
def bar(n):
print n
我收到错误消息:
Traceback (most recent call last):
File "test.py", line 3, in <module>
f.bar(1)
TypeError: bar() takes exactly 1 argument (2 given)
当我的 foo.py 看起来像这样时:
class Foo:
def bar(x,n):
print n
我得到结果:
1
这是为什么呢?为什么我需要声明两个参数,即使我想要一个只需要一个的方法?谢谢
【问题讨论】:
-
修正缩进。
-
然后阅读一些基本的 Python 文档,应该可以充分解决这个问题。
-
实例方法的第一个参数是对象本身。
-
查看官方文档:A First Look at Classes
-
在声明方法时,第一个参数是对类实例的引用,通常称为
self。请参阅this Stackoverflow 问题。
标签: python class methods module