相关疑难解决方法(0)

如何使用数据类创建"仅关键字"字段?

从3.0开始,只支持创建一个参数关键字:

class S3Obj:
    def __init__(self, bucket, key, *, storage_class='Standard'):
        self.bucket = bucket
        self.key = key
        self.storage_class = storage_class
Run Code Online (Sandbox Code Playgroud)

如何使用数据类获得这种签名?像这样的东西,但最好没有SyntaxError:

@dataclass
class S3Obj:
    bucket: str
    key: str
    *
    storage_class: str = 'Standard'
Run Code Online (Sandbox Code Playgroud)

理想情况下是声明性的,但是使用__post_init__钩子和/或替换类装饰器也很好 - 只要代码是可重用的.

编辑:可能是这样的语法,使用省略号文字

@mydataclass
class S3Obj:
    bucket: str
    key: str
    ...
    storage_class: str = 'Standard'
Run Code Online (Sandbox Code Playgroud)

python keyword-argument python-3.7 python-dataclasses

19
推荐指数
2
解决办法
1214
查看次数