函数变量的Python命名约定

Ale*_*lex 5 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]
Run Code Online (Sandbox Code Playgroud)

Aar*_*all 5

Python 是否有函数变量的命名约定?

不,不是,函数是 Python 中的第一类对象。传递函数名称,就像访问它进行调用一样。

例如:

def foo():
    pass

foo() # calling

another_function(foo) # passing foo
Run Code Online (Sandbox Code Playgroud)

然而,编程中最困难的事情之一是正确命名。我当然会使用更具描述性的名称,可能是动词。例如:

def do_nothing():
    pass
Run Code Online (Sandbox Code Playgroud)

编辑:同样的交易,但_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
Run Code Online (Sandbox Code Playgroud)

  • @Alex 你所得到的越来越成为一种意见问题,人们会投票结束这一点。如果问题是“有约定吗?” 那么答案是“否”。但如果问题是“我应该怎么称呼它?” 该问题将被关闭。 (2认同)