У меня есть небольшой вопрос о переменных. Мой основной язык Java (и я учусь Python), так что, у меня есть проблема, вызывающая переменную в функции, она не обновляет свое новое значение:Переменные Python в функциях?
# Values
global e1x, e1y, e1c, e2x, e2y, e2c, altx, alty, x, y
def getValues():
print("Taking Ax + By = C:")
e1x = float(input("Value of x in first equation: "))
#...
if(confirm()): # A function I ommited 'cause its irrelevant
return e1x, e1y, e1c, e2x, e2y, e2c
else:
getValues()
def calculateValues():
# Stuff with variables
# MAIN
getValues()
calculateValues()
Я пытался писать без глобальный, попытался использовать self слово, но оно не работает. (Использование Python 3)
ОШИБКА:
Traceback (most recent call last):
File "E002_GaussSeidel.py", line 41, in <module>
calculateValues()
File "E002_GaussSeidel.py", line 34, in calculateValues
print(str(e1x))
NameError: name 'e1x' is not defined
Burn * global e1x, e1y, e1c, e2x, e2y, e2c, altx, alty, x, y *. Вы действительно не хотите использовать глобальные переменные. Вы также должны использовать 'self' в методе класса, где self относится к экземпляру, на который будет вызван метод. Если вы хотите использовать эту логику, тогда фактически создайте класс, а не только функции. –
«Это не работает» не является описанием проблемы. Вы получили сообщение об ошибке? Если да, то какова полная трассировка? Это ведет себя неожиданно? Если это так, опишите ожидаемое и фактическое поведение. –
Python говорит, что «e1x не определен», когда я пытаюсь использовать его на «calculateValues ()», но я объявил сверху и инициализировал функцию, которая фактически возвращает эти значения. @SvenMarnach –