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

如何在Python中避免显式的“自我”?

如何在Python中避免显式的“自我”?

结果是,即使没有可见的完整类定义,也永远不会对什么是成员和什么不是成员感到困惑。这会导致有用的属性,例如:您不能添加意外遮蔽非成员并从而破坏代码的成员。

一个极端的例子:您可以在不知道类可能具有什么基类的情况下编写类,并且始终知道您是否正在访问成员:

class A(some_function()):
  def f(self):
    self.member = 42
    self.method()

这就是 完整的 代码!(some_function返回用作基础的类型。)

一个是动态组合类的方法的:

class B(object):
  pass

print B()
# <__main__.B object at 0xb7e4082c>

def B_init(self):
  self.answer = 42
def B_str(self):
  return "<The answer is %s.>" % self.answer
# notice these functions require no kNowledge of the actual class
# how hard are they to read and realize that "members" are used?

B.__init__ = B_init
B.__str__ = B_str

print B()
# <The answer is 42.>

记住,这两个例子都是极端的,您不会每天看到它们,我也不建议您经常编写这样的代码,但它们确实显示了明确要求自我的各个方面。

python 2022/1/1 18:34:12 有438人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶