Python是否具有函数变量的命名约定?我在PEP-8中看不到任何具体的内容(除了命名变量)。
由于函数是Python中的第一类对象,使用_fn
后缀或类似的东西,是公认的约定吗?
编辑:更新了更实际的示例
示例:
def foo_a():
print 'a'
def foo_b():
print 'b'
funcs = {'a': foo_a, 'b': foo_b}
# dynamically select function based on some key
key = 'a'
foo_fn = funcs[key]
答案 0 :(得分:4)
Python是否具有函数变量的命名约定?
不,它不是,函数是Python中的第一类对象。传递函数名称,就像访问它一样进行调用。
例如:
def foo():
pass
foo() # calling
another_function(foo) # passing foo
编程中最困难的事情之一就是获得正确的命名。我当然会使用更具描述性的名称,可能是一个动词。例如:
def do_nothing():
pass
编辑:同样的交易,但如果它使你的代码更清晰,那就没有什么可以阻止你使用_fn
作为后缀:
def foo_a():
print 'a'
def foo_b():
print 'b'
funcs = {'a': foo_a, 'b': foo_b}
# dynamically select function based on some key
key = 'a'
foo_fn = funcs[key]
foo_fn() # calling
another_function(foo_fn) # passing
答案 1 :(得分:0)
函数只是Python中可调用对象的一部分。 callable
只是一种对象类型,例如str
,list
或dict
。没有任何公约可以命名其中任何一个,特别是,我没有看到为什么这与callable
有任何不同的原因。