python - 缺少 1 个必需的位置参数

标签 python class typeerror

在编程方面,我是新手,但一直在进步。然而,我的头脑仍然需要完全理解正在发生的事情。

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/

相关文章:

python - PyCharm 错误 : RuntimeError, Click 将中止进一步执行,因为 Python 3

c++ - 如何在返回常量引用的类成员上正确调用 setter

python - scipy.optimize.curve_fit,TypeError : unsupported operand type

python - 将 ASCII 字符转换为 "<Uxxx>"unicode 符号的脚本

python - vim 的 python 插件,如 vim-r-plugin

python - 从Python列表中删除类

c# - 从 IronPython 实例化自定义 C# 类

来自函数所需实例声明的 Haskell 类型上下文

date.day() 返回 TypeError : 'int' object is not callable

python - 按日期过滤 Pandas DataFrame