无法更新函数中使用的全局变量(Python)

时间:2018-06-07 09:26:40

标签: python global-variables

我是python编程语言的新手,我试图发现全局变量的用法。我写了一个非常简单的程序,它包含两个python文件main.py和neuralnetwork.py.Neural网络文件由几个类和函数组成。此时我想从main.py文件中的函数调用全局变量。

但遗憾的是,当我在主文件中调用它们时,相关的全局变量没有被更新。

Neuralnetwork.py

import os.path
import numpy as np

IMAGE_H = 0

class initialization(object):

   def parsing(self):

       global IMAGE_H
       IMAGE_H = 25
       print IMAGE_H

Main.py

import sys
from Neuralnetwork import *

def main():

    init=initialization() //class instance
    init.parsing()
    print(IMAGE_H)

基本上,我从Neuralnetwork.py文件中调用“IMAGE_H”全局变量,但正如我之前所说的那样,相关的全局变量没有被更新。

它始终显示IMAGE_H变量等于“0”(其初始值)而不是函数中指定的“25”。与其他问题的主要区别是从另一个python文件中调用此全局变量。

如何在“初始化”功能中正确更新此全局变量?

1 个答案:

答案 0 :(得分:1)

不要使用全局变量。你几乎从不需要Python,特别是作为初学者。

相反,班级Initialization可以有一个变量image_h,如下所示:

class Initialization(object):

   def __init__(self):
       self.image_h = 0

   def parsing(self):
       self.image_h = 25

def main():

    init = Initialization() //class instance
    init.parsing()
    print(init.image_h)