【发布时间】:2019-03-05 02:10:49
【问题描述】:
我正在尝试编写一个包装 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')
输出是:
('name', 123, 'def')
(123, 'def')
看起来“名称”被分配给foo() 中的self,而不是__init__()。有没有办法解决这个问题?
【问题讨论】:
-
你为什么要从
bar类中调用方法?如果你这样做,那么它只是你定义的函数,不是方法,因为它没有绑定实例,self只是函数的第一个参数。没什么特别的。这是你应该期待的 -
是的,我在起草这个例子时犯了一个错误,我的错。
标签: python