gpt4 book ai didi

python - 数据类参数是否有别名或名称参数?

转载 作者:行者123 更新时间:2023-12-03 08:06:33 24 4
gpt4 key购买 nike

我有一个接受很多参数的类,在 init 方法中我将它们加载到不同名称的参数中。我知道这可能是一个糟糕的设计或其他什么,但我现在无法改变它。我尝试了很多东西,但都没有真正起到作用。是否可以在数据类中执行此操作?

class MyClass:
def __init__(self, vp):
self.viewport = vp

我知道这不是数据类的预期行为,但我想知道是否可以采取一些解决方法。

我想要的是数据类中的映射:

@dataclass
class MyClass:
viewport:str = "" # this should get the value from vp argument if possible

so when I call:
mc = MyClass(vp="foo")
print(mc) should return (MyClass(viewport="foo"))

最佳答案

这行得通吗?

from dataclasses import dataclass


arg_dict = {'vp':'viewport'}

@dataclass
class RealMyClass():
viewport: str = ''
some_other_field: int = 10


class MyClass(RealMyClass):
def __init__(self, **kwargs):
super().__init__(**{arg_dict[arg]:value for arg, value in kwargs.items()})


print(MyClass(vp='foo'))
MyClass(viewport='foo', some_other_field=10)

关于python - 数据类参数是否有别名或名称参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72170886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com