Python,全局变量

时间:2017-09-10 10:13:49

标签: python variables global

我声明了一个全局变量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()

2 个答案:

答案 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