如何从另一个函数内的一个函数调用变量?
我有一个功能load
如何从另一个函数内的一个函数调用变量?
def load():
file = open((input("File name: ")), "r")
movies_list = file.readlines()
movies_list = [movie.strip() for movie in movies_list]
file.close()
而且我想使用其他功能randomSelection
def randomSelection():
print(random.choice(movies_list))
我怎样才能解决这个获取列表movies_list
?有没有办法将movies_list
声明为全局变量?
返回movies_list
并将其作为参数传递给randomSelection
。
def load():
with open((input("File name: ")), "r") as file:
movies_list = file.readlines()
movies_list = [movie.strip() for movie in movies_list]
return movies_list
def randomSelection(movies_list):
print(random.choice(movies_list))
movies_list = load()
randomSelection(movies_list)
您可以返回movies_list和ARG传递给另一个函数(或者)使用全局变量
您可以定义一个movie_list作为一个全局变量如下:
def load():
file = open((input("File name: ")), "r")
global movies_list
movies_list = file.readlines()
movies_list = [movie.strip() for movie in movies_list]
file.close()
然后您可以在执行load()函数后使用movies_list
load()
def randomSelection():
print(random.choice(movies_list))
其他答案没关系。另一种选择是定义你的方法一类中,并使用实例变量他们之间共享数据:
class Test():
def __init__(self):
self.movie_list = "Empty"
def f1(self):
self.movie_list = "God_Father"
def f2(self):
print self.movie_list
test = Test()
test.f2()
test.f1()
test.f2()
输出:
>>> ================================ RESTART ================================
>>>
Empty
God_Father
>>>
听起来像矫枉过正。 – 2016-04-25 08:58:31
@DisplayName OOP是我的首选。没有? – EbraHim
你为什么这么认为? Python是一个多范型语言:程序,functionla,OO。 – 2016-04-25 09:00:26
定义'movie_list'全球。 – EbraHim
为什么不把'movies_list'从'load'返回并传递给'randomSelection'? –
https://en.wikipedia.org/wiki/Return_statement – khelwood