gpt4 book ai didi

python - 在 ipython 中给出 "missing 1 required positional argument"的简单类定义

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:56 26 4
gpt4 key购买 nike

这是我的类文件(名为 myclasses.py):

class wave:
def __init__(self, name = "", xdelta = 1)
self.name = name
self.xdelta = xdelta

def loadbinary(bpath):
print(bpath)

现在我已经去掉了其他细节(加载二进制文件代码等),当我运行以下命令时,我得到了一个错误输出:

import myclasses
a = myclasses.wave
a.loadbinary('TEST')

错误:

TypeError: loadbinary() missing 1 required positional argument: 'bpath'

我已经尝试将 loadbinary 定义更改为“loadbinary(self, bpath)”,但它会给出相同的错误。我也试过用“pass”替换“print”代码让它什么也不做,但这仍然给我错误。我还尝试运行以下命令:

a.loadbinary(bpath='TEST')

...但这会将错误更改为:loadbinary() missing 1 required positional argument: 'self'

此时,我不确定发生了什么。类定义是基本的,不从其他类继承,据我所知,我只能遵循此处显示的类的 python 文档中的代码:https://docs.python.org/2/tutorial/classes.html

我正在使用 Python 3.4.3,这发生在 iPython 3.1.0 中,在 PyCharm 4.5.1 中运行。如果我直接在命令提示符(OS X 终端)下在 iPython 3.1.0 中运行它,我会得到以下错误输出:

unbound method loadbinary() must be called with wave instance as first argument (got str instance instead)

最佳答案

您从未实例化该类。改为这样做:

class wave:
def __init__(self, name = "", xdelta = 1)
self.name = name
self.xdelta = delta

def loadbinary(self, bpath):
print(bpath)

或者...

class wave:
def __init__(self, name = "", xdelta = 1)
self.name = name
self.xdelta = delta

@staticmethod
def loadbinary(bpath):
print(bpath)

然后...

import myclasses
a = myclasses.wave() # the brackets instantiate the class
a.loadbinary('TEST')

关于python - 在 ipython 中给出 "missing 1 required positional argument"的简单类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30626673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com