通过赋予类属性来实现简单方法是否有任何风格禁忌或其他缺点?例如。如下bar
和baz
,而不是foo
。
class MyClass(object):
def hello(self):
return 'hello'
def foo(self):
return self.hello()
bar = lambda self: self.hello()
baz = hello
我发现自己被这样的事物的明显经济所诱惑:
__str__ = __repr__ = hello
答案 0 :(得分:8)
就个人而言,我认为像
这样的事情__str__ = __repr__ = hello
很好,但是
bar = lambda self: self.hello()
是邪恶的。您不能轻易地为lambda提供文档字符串,.func_name
属性将具有无意义的值<lambda>
。第一行不会出现这两个问题。
答案 1 :(得分:4)
通常,将方法分配给其他名称是完全正确的。但是,在许多情况下,hello
首先应该是__str__
(除非hello
以定义的格式返回字符串)。