缺少1个必需的位置参数

时间:2014-07-22 19:52:53

标签: python class typeerror

让我先说一下,我在编程方面一样绿色,但一直在制作流程。然而,我的头脑仍然需要完全理解为什么以及正在发生的事情。

无论如何,正如标题所暗示的那样,我将把我将保留的源代码粘贴到最低限度。

(我使用的是Python 3.4.1版)


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");

名义上有更多的参数?如果我理解正确,论证就在这里 - &gt; ()&lt; -

我也排除了def createname(self,name)的事实,因为self是或应该是独自存在而不包括在内?所以我真的不明白发生了什么。

提前感谢您,如果已经回答了这件事我很抱歉,在这种情况下,我一定忽略了它。


解决:

 first = classname;
 second = classname;

应该是:

 first = classname();
 second = classname();

缺少的括号当然意味着我只是将第一个和第二个等同于其他东西并且没有将它与&#34;实际的cl

联系起来

1 个答案:

答案 0 :(得分:5)

这是一个非常简单的答案,很惊讶你从来没有得到过回应! :(

你还没有创建一个对象

例如,你想写:

first = classname()

而不仅仅是

first = classname

目前,你是如何编写的,first指的是。例如,如果你问first是什么,你会得到:

<class '__main__.classname'>

然而,在实例化之后(通过在结尾添加()),您现在看到first

<__main__.classname object at 0x101cfa3c8>

这里的重要区别是您的调用创建了 ,而我创建了 对象

  

一个类是人类对你的一个对象,或者是对Lassie的一个对象。

你创造了&#34; canine&#34;,而你想创造&#34; Lassie&#34;。

注意:您通常也想初始化对象。为此,您可以在班级中放置__init__方法。