我声明了一个全局变量pos
,无论如何方法printArr()
都没有看到它。口译员说:undifined variable pos
。为什么?感谢
import nltk
class Analyzer():
"""Implements sentiment analysis."""
def __init__(self, positives, negatives):
global pos
global neg
positives=[]
negatives=[]
i=0
file = open("negative-words.txt","r")
for line in file:
h=file.readline()
if h!="":
if h[0]!=';':
negatives.append(h)
i=i+1
print(h)
i=0
file = open("positive-words.txt","r")
for line in file:
h=file.readline()
if h!="":
if h[0]!=';':
positives.append(h)
i=i+1
print(h)
neg=negatives
pos=positives
def printArr (self, arr):
print (pos[2])
"""Initialize Analyzer."""
我会尽量让它变得更容易:下一个代码无法正常工作,程序仍打印出“0”,而不是“5”
import os
import sys
global x
x=0
def func1():
x=5
def func2():
print (x)
func2()
答案 0 :(得分:0)
Python将始终在全局范围内搜索之前查找局部变量。
你的func2()将始终引用x的全局值,因为x未在本地定义。
您可以尝试嵌套2个函数。
Func2(func1())
这样你的func1会将值5赋给变量x,而func2将返回5而不是0。
希望它有所帮助。
答案 1 :(得分:0)
def func1():
x = 5
return x
def func2():
print(func1())
#It returned 5