【发布时间】:2015-02-28 05:09:48
【问题描述】:
我希望班级执行以下相同操作:
class Player:
def __init__(self, **kwargs):
try:
self.last_name = kwargs['last_name']
except:
pass
try:
self.first_name = kwargs['first_name']
except:
pass
try:
self.score = kwargs['score']
except:
pass
但这在我看来真的很草率。有没有更好的方法来定义这个 __init__ 方法?我希望所有关键字参数保持可选。
【问题讨论】:
-
即使
kwargs['score']不可用,您通常也希望将self.score设置为默认值。并且不要使用毯子except(参见Why is "except: pass" a bad programming practice?);最多使用except KeyError,但无论如何您都在硬编码名称,那么为什么要使用**kwargs? -
只有 3 个关键字参数?然后
def __init__(self, last_name = Null, first_name = Null, score = Null): -
@BhargavRao 您应该将其发布为答案(这是一个非常有效的答案)。
-
@BhargavRao:空?您在这里将 Python 与什么语言混淆了?
标签: python python-3.x