作为函数的变量的Python命名约定

时间:2015-07-21 15:50:19

标签: python function naming-conventions

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]

2 个答案:

答案 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只是一种对象类型,例如strlistdict。没有任何公约可以命名其中任何一个,特别是,我没有看到为什么这与callable有任何不同的原因。