Python:*类方法中的参数行为
我正在尝试编写一个包装器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')
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')