我有一些像下面这样的类,并且希望避免太多重复和不必要的臃肿代码。我正在寻找特定的优化,不是 code review .
当前代码:
class Item:
def __init__(self, name, price):
self.name = name
self.price = price
@classmethod
def from_dictionary(cls, dictionary):
return cls(
name=dictionary['name'] if 'name' in dictionary else '',
price=dictionary['price'] if 'price' in dictionary else ''
)
所需(伪)代码:
class Item:
def __init__(self, *args, **kwargs):
for kwarg in kwargs:
self[kwarg] = kwargs[kwarg]
@classmethod
def from_dictionary(cls, dictionary):
return cls(
for key, value in dictionary:
key=value or ''
)
如何在 Python 中实现接近我想要的代码?
最佳答案
您可以使用内置的setattr
来设置属性:
class Item:
def __init__(self, *args, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)
@classmethod
def from_dictionary(cls, dictionary):
return cls(**dictionary)
在类方法中,我们使用 **
运算符来解压给定的字典。
关于python - 如何概括这个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59815359/