python变量名的使用

python变量名的使用,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我想知道,如果您要修改函数的内容而不是使用临时名称,那么在函数中重复使用相同的变量名是否符合python 例如: NAMES = ['abc def', 'ghi jkl', 'ghi jkl'] def clean_names(names): names = [name.title() for name in names] # Put upper case for first letters names = list(set(names)) # Remove duplicat

我想知道,如果您要修改函数的内容而不是使用临时名称,那么在函数中重复使用相同的变量名是否符合python

例如:

NAMES = ['abc def', 'ghi jkl', 'ghi jkl']

def clean_names(names):
    names = [name.title() for name in names] # Put upper case for first letters
    names = list(set(names)) # Remove duplicates
    return names
输出:

['Ghi Jkl', 'Abc Def']

我的感觉是,如果它能让代码更容易理解,那为什么不呢

如果您正在更改数据集,那么重复使用变量名不是不符合python的,但是,在您的情况下,您可以删除重新分配变量的第2行,然后使用return语句

NAMES = ['abc def', 'ghi jkl', 'ghi jkl']

def clean_names(list_of_names):
    names = [name.title() for name in list_of_names]
    return list(set(names)) # Return a list without duplicates

你要避免阴影。i、 e.在
内部使用
名称
。除非它作为参数传递。如果在列表理解中使用
names
,那么
names
参数有什么意义?您可以(几乎)命名任何您想要的变量,并且可以随意重用和更改值。正如@Barmar所指出的,注意参数的使用。@roganjosh问题不在于如何调用函数,而在于在函数的第二行重新指定变量
names
。@Skam我错了,我指的是参数,而不是名称列表,我修复了代码我假设它是传递给方法的
clean_names()
,但在这种情况下,他使用了虚拟数据('abc def'将不包含
.title()
),希望他回来为我们澄清这一点,你就错了。我的问题是关于风格。我经常使用相同的名称对给定给函数的数据集进行多次修改,以使代码更具可读性:每次修改一行。谢谢