Как реализовать глобальную переменную в этом коде, чтобы ее можно было использовать в других функциях? Использование Tkinter и Python 3

#python #tkinter

#python #tkinter

Вопрос:

Как бы я реализовал глобальную переменную для всех переменных в get_credit_score, чтобы их можно было прочитать в advice_to_be_given .

 def close_window(self):
    self.master.destroy()

def get_credit_score(self):
    monthlyWage = int(input("What is your monthly wage? "))
    monthlySpendings = int(input("What are your monthly spendings? ")) 
    monthlyOverdraft = int(input("What is your monthly overdraft? "))
    monthlySavings = int(input("How much do you add into your savings account per month? "))

def advice_to_be_given(self):
    if monthlySavings == 0:
        print("You should add more into your Savings account. ")
    if monthlyOverdraft == 0:
        print("Maintain not having an overdraft")
    if monthlySavings > monthlySpendings and overdraft > 0:
        print("Spend more money on essentials, instead of putting it into your savings. Ensure that you are not spending too much on essentials, as this can increase your overdraft")
    #if monthlySpending >==3 monthlySavings:
        #print("You are spending too much money in a month, add some money into savings. ")
    if monthlyOverdraft < 0:
        print("Add 15% of your monthly savings into paying off overdraft. ")
    if monthlyOverdraft > monthlySavings and monthlyOverdraft > monthlySpendings:
        print("Cut down on how much money goes into savings, and ensure that your overdraft is being paid off. ")
               
 

Комментарии:

1. Я предлагаю вместо глобальных значений рассмотреть self.monthlyWage = int(input("What is your monthly wage? ")) возможность использования / извлечения значения, как self.monthlyWage в других ваших методах экземпляра.

Ответ №1:

 def get_credit_score(self):
    Global monthlyWage
    monthlyWage = 2

def advice_to_be_given(self):
    print(monthlyWage)
 

Комментарии:

1. Как это будет реализовано в моем коде? Я относительно новичок в Python.

2. Я отредактировал ответ, все, что вам нужно сделать, это написать Global перед именем переменной, чтобы сделать его глобальным. вы можете присвоить ей любое значение, которое хотите, и можете считывать его из других функций.

Ответ №2:

Вы можете просто определить их вне функции, а затем использовать ключевое слово global внутри функций, для которых вы хотите их использовать.

например:

 monthlyWage = 0
monthlySpendings = 0
monthlyOverdraft = 0
monthlySavings = 0 

def get_credit_score(self):
    global monthlyWage
    global monthlySpendings
    global monthlyOverdraft 
    global monthlySavings 
    monthlyWage = int(input("What is your monthly wage? "))
    monthlySpendings = int(input("What are your monthly spendings? ")) 
    monthlyOverdraft = int(input("What is your monthly overdraft? "))
    monthlySavings = int(input("How much do you add into your savings account per month? "))
 

Эти переменные вне функции могут использоваться любой другой функцией при ссылке с ключевым словом global

Комментарии:

1. У вас есть разногласия, чтобы мы могли обсудить это дальше? У меня возникли некоторые проблемы.

2. пожалуйста, отметьте ответ как правильный, если он помог вам решить проблему.