对函数内部的不同事物使用相同的变量是一种好习惯

sky*_*ork 3 python variables coding-style

在如下函数中:

def foo(case):
    if case == 1:
        my_var = []
        # then do something with my_var
    elif case == 2:
        my_var = {}
        # then do something with my_var
Run Code Online (Sandbox Code Playgroud)

由于变量my_var存在于不同的情况下,因此它不应该在运行时引起问题.但这在Python中是一个很好的做法吗?

Sim*_*ser 8

对于使用相同代码的其他人来说,这可能会让人感到困惑.一些样式指南也不鼓励为不同目的重用相同的变量名称.如果你可以避免它,那么你应该,尽管也有充分的理由偏离这个规则.他们真的是一回事吗?一个是项目列表,另一个是值的字典,那么它们包含什么?如果你能想到一个更具描述性的变量名,那么这是一个好主意.