alp*_*ric 7 python methods class attr
命名类属性及其方法(函数)的最佳实践是什么.
class Base():
def __init__(self):
self.name = 'My Name'
def print_this(self):
print "Hello"
Run Code Online (Sandbox Code Playgroud)
创建类的实例:
a = Base()
Run Code Online (Sandbox Code Playgroud)
了解此类中可用的方法和属性:
print dir(a)
Run Code Online (Sandbox Code Playgroud)
获得此输出:
['__doc__', '__init__', '__module__', 'name', 'print_this']
Run Code Online (Sandbox Code Playgroud)
从读取dir()输出中的名称,不可能看到变量的位置(类属性)和方法(类函数).
用于区分变量与函数(或attrs与方法)的命名约定是什么?
方法一般应该有一个动词在其中,例如print_this,calculate_that,save,因为他们执行一些动作.
属性和特性将只是一个裸露的名词,例如name,status,count因为它们只包含一个值,或者在一个属性的情况下,底层函数应当计算并返回一个值,而无需其他的副作用.
你的问题很模糊:
是关于Python中的命名约定?为此,您应该参考着名的PEP8文档
是关于如何通过查看他们的名字来区分方法和属性?为此,请参阅上面的经验法则
是关于如何以编程方式区分方法和属性?在这种情况下,您可以使用该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
Run Code Online (Sandbox Code Playgroud)