Не удается обновить глобальную переменную, используемую в функции (Python) - PullRequest
0 голосов
/ 07 июня 2018

Я совершенно новый в языке программирования Python и пытаюсь обнаружить использование глобальных переменных.Я написал очень простую программу, которая состоит из двух файлов Python как main.py и neuralnetwork.py. Файл нейронной сети состоит из нескольких классов и функций.На данный момент я хотел бы вызвать глобальную переменную из функции в файле 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)

По сути, я вызываю глобальную переменную IMAGE_H из файла Neuralnetwork.py, нокак я уже говорил, соответствующая глобальная переменная не обновляется.

Она всегда показывает, что переменная IMAGE_H равна «0» (ее начальное значение) вместо указанной «25» в функции. Основное отличие от другихвопросы в том, чтобы вызвать эту глобальную переменную из другого файла Python.

Как правильно обновить эту глобальную переменную в функции "инициализации"?

1 Ответ

0 голосов
/ 07 июня 2018

Не используйте глобальные переменные.Они почти никогда не нужны в 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...