如何更改函数内函数外的列表/变量的实际值?

时间:2017-11-03 02:20:58

标签: python python-2.7

如何在函数之外的列表中添加内容:

greeting = ["Hello","Hi"]
def addGreeting():
    greeting.append(raw_input("add greeting here: "))

如何更改函数内函数外的列表/变量的实际值?

2 个答案:

答案 0 :(得分:0)

greeting = ["Hello", "Hi"]

设计一个函数,该函数在运行时接受参数替换参数。

def addGreeting(list,newgreeting):
    list.append(newgreeting)

现在调用函数

addGreeting(greeting,"This is a new greeting!")

答案 1 :(得分:0)

首先,您发布的代码按预期工作:

greeting = ["Hello","Hi"]

print(greeting)

def addGreeting():
    greeting.append(raw_input("add greeting here: "))

addGreeting()
print(greeting)

无论你添加什么,都会在greeting中。但这是非常混乱和隐含的,它依赖于你给出变量的特定名称。相反,考虑做

def add_greeting_from_input(greetings):
    greetings.append(raw_input("add greeting here: "))
    return greetings

现在这个功能更加灵活,并且完全明确了它的作用。具有隐式行为的函数理想情况下应限于类,它们显然(希望)作用于实例本身。