python - 类型错误 : takes 0 positional arguments but 1 was given

原文 标签 python python-3.x

这个问题在这里已经有了答案:





TypeError: worker() takes 0 positional arguments but 1 was given

(10 个回答)


3年前关闭。




我已经开始学习 Python。我创建了一个具有函数的类,在该函数中我有一个字典。不,我正在检查字典中是否存在一个键,在检查后我正在从函数返回一个值。

现在我正在尝试访问该功能,但是当我这样做时,我收到错误 "TypeError: first_func() takes 0 positional arguments but 1 was given"
以下是我正在使用的代码:

class myFirst:
    def first_func():
        flag=0
        phonebook = {
            "A" : 938477566,
            "B" : 938377264,
            "C" : 947662781
        }
        # testing code
        if "A" in phonebook:
            flag=1
        if "D" not in phonebook:
            flag = 0
        return flag

myclassObj = myFirst()
status = myclassObj.first_func()

if status > 1:
    print ("Pass")
else:
    print ("fail")

最佳答案

方法(属于类的函数或过程)需要 self争论,你可能熟悉 this来自其他语言,(除非明确定义为 @staticmethod 但它看起来不像你在这里想要的)像这样:

class myFirst:
    def first_func(self): # here
        flag=0
        phonebook = {
            "A" : 938477566,
            "B" : 938377264,
            "C" : 947662781
        }
        # testing code
        if "A" in phonebook:
            flag=1
        if "D" not in phonebook:
            flag = 0
        return flag

myclassObj = myFirst()
status = myclassObj.first_func()

if status > 1:
    print ("Pass")
else:
    print ("fail")
它应该适用于那个微小的变化。
如果您想使用 @staticmethod装饰器(如果该函数实际上不需要来自类实例的信息),您可以这样做:
class myFirst:
    @staticmethod #here
    def first_func():
您可以通过查看此处的文档了解更多信息:https://docs.python.org/3/tutorial/classes.html

关于python - 类型错误 : takes 0 positional arguments but 1 was given,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53269693/

相关文章:

algorithm - 如何不放回取样,每次重新称重(有条件取样)?

python - 使用Python从CSV绘制像素坐标

javascript - 在1&1托管hostig上安装SymPy

python - 如何创建有向图?

python - Pandas groupby中非空值的移位和滚动平均值

python - 使用[]代替点访问Dataframe列时,Pandas'SettingsWithCopyWarning'

python - 使用单个元素解包元组或如果元组为 None 则返回 None

python - Skiprow 条件基于值而不是 Pandas 中的索引

python - numpy和sympy lambdify结果的差异,用于基本优化

python - Pylint:通过脚本获取输出,类似于pylint可执行文件的[duplicate]