在编程方面,我是新手,但一直在进步。然而,我的头脑仍然需要完全理解正在发生的事情。
class classname:
def createname(self, name):
self.name = name;
def displayname(self):
return self.name;
def saying(self):
print("Hello %s" % self.name);
first = classname;
second = classname;
first.createname("Bobby");
错误:
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
first.createname("Bobby")
TypeError: createname() missing 1 required positional argument: 'name'
错误告诉我名称中还需要 1 个参数,所以我一定是那里出错了,但我已经尝试过这样的事情:
first.createname("bobby", "timmy");
我也排除了它是 def createname(self, name)
的事实,因为 self
是或应该是单独的而不是包含在内?所以我真的不明白发生了什么。
最佳答案
您还没有真正创建对象。
例如,你会想写:
first = classname()
不仅仅是
first = classname
目前,您如何编写它,first
指向一个类。例如,如果你问 first
是什么,你会得到:
<class '__main__.classname'>
但是,在实例化它之后(只需在末尾添加 ()
),您会看到 first
现在是:
<__main__.classname object at 0x101cfa3c8>
这里的重要区别是您的调用将first
设置为类,而我的设置为一个对象。
这样想:类之于对象,就像人类之于你,或者犬类之于 Lassie。
您将其设置为“canine”,而您想将其设置为“Lassie”。
注意:您通常还需要初始化对象。为此,您在类中放置了一个 __init__
方法。
关于python - 缺少 1 个必需的位置参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24896613/