可以/应该通过赋值给属性来实现Python方法吗?

fiz*_*zer 6 python coding-style

通过赋值给类属性来实现琐碎的方法有任何风格禁忌或其他缺点吗?例如喜欢bar和喜欢baz,而不是更多的因果foo.

class MyClass(object):
    def hello(self):
        return 'hello'
    def foo(self):
        return self.hello()
    bar = lambda self: self.hello()
    baz = hello
Run Code Online (Sandbox Code Playgroud)

我发现自己被这样的事物的表面经济所诱惑:

__str__ = __repr__ = hello
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 8

就个人而言,我觉得这样的事情

__str__ = __repr__ = hello
Run Code Online (Sandbox Code Playgroud)

很好,但是

bar = lambda self: self.hello()
Run Code Online (Sandbox Code Playgroud)

是邪恶的.你不能轻易地给lambda一个文档字符串,该.func_name属性将具有无意义的值<lambda>.第一行不会出现这两个问题.