我需要创建一个带有很多参数的类.
class Line:
def __init__(self, name, nb = None, price_unit = None, total = None,
unit = None, time = None, session = None ):
Run Code Online (Sandbox Code Playgroud)
每个属性都将获得与传递给__init __()的参数相同的名称和相同的值.
所以,当然我可以这样做:
class MyClass:
def __init__(self, name, nb = None, price_unit = None, total = None,
unit = None, time = None, session = None ):
self.name = name
self.nb = nb
self.price = price
self.price_unit = price_unit
self.total = total
self.unit = unit
self.time = time
self.session = session
Run Code Online (Sandbox Code Playgroud)
但这是一个非常沉重的符号,对我来说似乎不是pythonic.你知道更多的pythonic方式吗?
由于您要为所有关键字参数设置默认值None,因此您可以更具可读性:
class MyClass:
def __init__(self, name, **kwargs):
self.name = name
for attr in ('nb', 'price_unit', 'total', 'unit', 'time', 'session'):
setattr(self, attr, kwargs.get(attr))
Run Code Online (Sandbox Code Playgroud)
但是,我认为您的初始方法也非常标准,尽管您可以通过删除参数与其默认值之间的空格来改进它.
class MyClass:
def __init__(self, name, nb=None, price_unit=None, total=None,
unit=None, time=None, session=None):
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |