在我的python文件的顶部,创建一个列表:
table = [[]]
然后我有一个方法来设置列表的值:
def setTable():
table = list(csv.reader(open("vplan/temp.csv")))
print(table)
如果我运行它,表的值将被打印出来,如它应该的那样。但是,如果我尝试在方法之外打印它
print(table)
它只打印“ [[]]”-我不明白为什么。 我希望有人可以向我解释这一点,我不经常使用Python。
答案 0 :(得分:0)
方法内部的表变量与方法外部的表变量不同,以便尝试使用相同的变量:
table = [[]]
def setTable(table):
table = list(csv.reader(open("vplan/temp.csv")))
return table
print(setTable(table))
我希望这对您有所帮助,因为我做了很多python编程,所以我对这种语言非常熟悉。我不确定在开始时何时定义表变量时需要像这样分配它:[[]],但是如果那是您需要代码起作用的方式,那么就可以使用它。如果它不能像这样[[]]一起使用,请尝试这样:[]。希望对您有所帮助。
答案 1 :(得分:0)
根据LEGB范围规则(您可以在此处阅读:https://realpython.com/python-scope-legb-rule/#using-the-legb-rule-for-python-scope),创建的变量位于 Global Scope (全局范围),而函数内部的变量为本地范围。
默认情况下,您无法访问函数内的 Global Scope 变量<iframe
className="embed-responsive-item"
src={
generic_profile.videoURL == undefined
? "https://www.youtube.com/embed/wYxDJOFgDw0"
: cloudinayURL
}
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
(它会创建一个本地范围变量,其名称与您可以在函数内访问的名称相同)。
相反,您必须告诉python您正在尝试将其分配给全局变量table
。
这是您需要编写的代码:
table