【发布时间】:2014-01-10 19:17:26
【问题描述】:
命名类属性及其方法(函数)的最佳做法是什么。
class Base():
def __init__(self):
self.name = 'My Name'
def print_this(self):
print "Hello"
创建一个类的实例:
a = Base()
了解此类中可用的方法和属性:
print dir(a)
得到这个输出:
['__doc__', '__init__', '__module__', 'name', 'print_this']
通过读取 dir() 输出中的名称,不可能看到变量在哪里(类属性)和方法在哪里(类函数)。
使用哪些命名约定来区分变量与函数(或属性与方法)?
【问题讨论】:
-
如果我是你,我会去阅读 PEP 8 的命名约定
-
也看看 flake8 pypi.python.org/pypi/flake8 并开始使用吧。
-
查看 PEP 8 肯定是一个好主意,但同样值得注意的是,尝试在 Python 中实现这样的命名约定充满了陷阱。例如,
property应该获取属性变量样式还是实例方法样式?根据上下文,它们同样有效。 -
print {name: type(a[name]) for name in dir(a)}- 现在你知道类型了 -
这个问题没有正确答案。 “我应该使用什么命名约定?”