【发布时间】:2023-01-12 10:41:30
【问题描述】:
嗨,我想知道这是一种“更像 pythonic”的方式来构建一个称呼一个类中的方法。
示例 1:称呼底部的方法:对此的争论是针对“方法论”-称呼在类的末尾 - 因此所有使用的类方法都在上面声明,无论它在哪里被调用。
class Example1(object):
def __init__(self):
self.a = 0
# ...
self.z = 26
def func_1(self):
# do stuff
pass
def func_2(self):
# do stuff
pass
# ...
def func_n(self):
# do stuff
pass
def __call__(self):
self.func_1()
self.func_2()
# ...
self.func_n()
示例 2:称呼方法在顶部:这个参数是为了“可读性”——所以只要你看到“class-keyword”,你就可以看到在类中调用的步骤
class Example2(object):
def __call__(self):
self.func_1()
self.func_2()
# ...
self.func_n()
def __init__(self):
self.a = 0
# ...
self.z = 26
def func_1(self):
# do stuff
pass
def func_2(self):
# do stuff
pass
# ...
def func_n(self):
# do stuff
pass
人们对此主题的偏好是什么和/或对此是否有任何鼓舞人心的指导方针?
【问题讨论】:
-
没关系。我不会把一个比另一个称为 pythonic。选择一种风格并坚持使用它以确保项目的一致性。通常我会把
__init__放在第一位。 -
令人惊讶的是,这似乎没有被 PEP8 涵盖。
标签: python