命名类属性及其方法(函数)的最佳实践是什么。
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()输出中的名称,无法看到变量的位置(类属性)以及方法(类函数)的位置。
用于区分变量与函数(或attrs与方法)的命名约定是什么?
答案 0 :(得分:5)
方法通常应包含动词,例如print_this
,calculate_that
,save
,因为它们会执行某些动作。
属性和属性只是一个裸名词,例如name
,status
,count
因为它们只包含一个值,或者在属性的情况下,底层函数应该是计算并返回一个值,没有其他副作用。
你的问题很模糊:
它是关于Python中的命名约定吗?为此,您应该参考famous PEP8 document
是关于如何通过查看名称来区分方法和属性?为此,请参阅我的经验法则
是关于如何以编程方式区分方法和属性?在这种情况下,您可以使用inspect
模块提供明确的答案,例如:
import inspect
for attr in dir(a):
if inspect.ismethod(getattr(a, attr)):
print '%s is a method' % attr
else:
print '%s is an attribute or property' % attr