Ошибка импорта глобальных переменных из функции в разные файлы - PullRequest
0 голосов
/ 23 января 2020

У меня есть 2 python файла: Math1.py, Math2.py

У меня есть глобальная переменная, определенная в Math1.py, которую я могу успешно использовать, и делаю дальнейшие вычисления в файле Math2.py, используя - -> из Math1 import *, только когда я вызываю класс и его метод в соответствующем файле.

Хотя, когда я пытаюсь получить доступ к одной и той же глобальной переменной во втором файле, при попытке запустить обе программы из одного файла, я не могу использовать ее, и это выдает ошибку: глобальная переменная не определена.

Ниже приведены файлы и соответствующий код: (Этот код работает)

Math1.py

время импорта import math

    class Math1():
        def __init__(self,x,y,z):
            self.x=x
            self.y=y
            self.z=z
        def do_add(self):
            global add_result
            global mult_i        
            add_result=(self.x+self.y+self.z)
            mult_i=self.z
            return add_result
   C=Math1(1,3,4)
   C.do_add()

Math2.py

from Math1 import*
from Math1 import Math1

class Math2(Math1):
    def __init__(self):
        if mult_i<10:
            print("Mult_i is less than 10")

    def do_mult(self):
        global mult_result

        mult_result=add_result*mult_i
        print(mult_result)


mult=Math2()
mult.do_mult()

Этот код не работает:

Math1.py

import time
import math
class Math1():

    def __init__(self,x,y,z):
        self.x=x
        self.y=y
        self.z=z

    def do_add(self):
        global add_result
        global mult_i

        add_result=(self.x+self.y+self.z)
        mult_i=self.z

        return add_result

##C=Math1(1,3,4)
##C.do_add()

Math2.py

from Math1 import*
from Math1 import Math1

class Math2(Math1):
    def __init__(self):
        if mult_i<10:
            print("Mult_i is less than 10")

    def do_mult(self):
        global mult_result

        mult_result=add_result*mult_i
        print(mult_result)

C=Math1(1,3,4)
C.do_add()
mult=Math2()
mult.do_mult()

Ошибка: NameError: global имя 'mult_i' не определено

...