Python:*类方法中的参数行为

Python:*类方法中的参数行为,python,Python,我正在尝试编写一个包装器Python函数,该函数接受数量可变的位置参数,然后对这些参数进行处理并从库中馈送到主函数中。我在这里创建了一个简单的示例,展示了我目前面临的问题: class bar : def __init__(self, *args) : print(args) def foo(self,*args) : print(args) a = bar('name',123,'def') bar.foo('name',123,'def')

我正在尝试编写一个包装器Python函数,该函数接受数量可变的位置参数,然后对这些参数进行处理并从库中馈送到主函数中。我在这里创建了一个简单的示例,展示了我目前面临的问题:

class bar :
    def __init__(self, *args) :
        print(args)
    def foo(self,*args) :
        print(args)

a = bar('name',123,'def')
bar.foo('name',123,'def')
输出为:

“名称”,123,“定义”

123,“def”


看起来“name”在foo中被分配给self,但在_uinit中没有。有办法解决这个问题吗?

当您应该调用实例a.foo上的方法时,您正在调用类bar.foo上的方法


啊,是的,真是个愚蠢的错误。谢谢当stackoverflow允许我在几分钟内回答这个问题时,我会接受这个答案。你为什么要在类栏外调用这个方法?如果您这样做,那么它只是您定义的函数,而不是方法,因为它没有绑定实例,self只是函数的第一个参数。没什么特别的。这是你应该期待的是的,我在起草这个例子时犯了一个错误,我的错。
a.foo('name',123,'def')