您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

用默认值初始化方法的参数

用默认值初始化方法的参数

这里常见的习惯用法是将认值设置为一些哨兵值用于此目的,这是典型值,然后您可以检查该值。

class Example(object): #inherit from object.  It's just a good idea.
   def __init__(self, data = None):
      self.data = self.default_data() if data is None else data

   def default_data(self):  #probably need `self` here, unless this is a @staticmethod ...
      # ....
      return something

您可能还会看到object()用于哨兵的实例。

SENTINEL = object()
class Example(object):
   def __init__(self, data = SENTINEL):
      self.data = self.default_data() if data is SENTINEL else data

一个版本的优点是可以传递None函数,但有一些缺点(请参见下面@larsmans的评论)。如果您不认为需要将None有意义的参数传递给您的方法,那么我建议您使用它。

其他 2022/1/1 18:39:38 有435人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶