【发布时间】:2020-10-22 08:05:36
【问题描述】:
我试图将数据类对象作为可选参数传递给函数,但卡住了。 所以,这里有一个描述问题的简化代码。 首先,我定义一个数据类:
@dataclass
class SomeObject:
A: str
如果我将参数设置为非可选,则没有问题:
def printObject0 (Index, AnyObject):
print(Index, AnyObject.A)
Object1 = SomeObject ("A")
printObject0 (1, Object1)
# gives:
# 1 A
但是,如果我尝试将其作为可选参数 *args 像这样...
def printObject1 (Index, *AnyObject):
print(Index, AnyObject.A)
Object1 = SomeObject ("A")
printObject1 (1, Object1)
# gives:
# AttributeError: 'tuple' object has no attribute 'A'
...或者像这样的 **kwargs...
def printObject2 (Index, **AnyObject):
print(Index, AnyObject.A)
Object1 = SomeObject ("A")
printObject2 (1, Object1)
# gives:
# TypeError: printObject2() takes 1 positional argument but 2 were given
我收到上述错误。
有谁知道如何使对象成为可选对象?
【问题讨论】:
-
def printObject1(索引,AnyObject=None):
标签: python function parameter-passing python-dataclasses