модуль python не распознает переменные

#python #function #module

#python #функция #модуль

Вопрос:

совершенно новый для Python, использующий вводный класс. У меня возникли проблемы с пониманием того, как заставить модуль получать возвращаемое значение из функции и использовать его для выполнения вычислений.
В этом примере я получаю «размер» радиуса окружности от пользователя, затем модуль geometry должен принять размер, вычислить длину окружности и передать его обратно в файл проекта для отображения.
Хотя, что бы я ни пробовал, переменная «size» не может быть распознана модулем geometry. «Ошибка имени: имя ‘size’ не определено»

Основной файл проекта:

 import geometry

    def main():
        size, unit = getUserInput()
        displayCircleResults(geometry.circleCircum, geometry.circleArea)

    def getUserInput():
        size = float(input('Enter length of radius: '))
        unit = input('Enter unit of measure, e/g., inches: ')
        return size, unit
  

geometry.py модуль:

 def main():
    radius = circleCircum(size)

def circleCircum():
    return math.pi * size**2
  

Как заставить модуль принимать возвращаемые значения из другого файла?
Спасибо!

Ответ №1:

Вы не вызывали эту функцию. За именем функции следуют круглые скобки. Вы использовали circleCircum и circleArea так, как если бы они были скалярными атрибутами (переменными).

Кроме того, переменные, о которых идет речь, являются локальными для их пакетов: main и geometry. Размер в вашей основной программе не имеет ничего общего с локальной переменной в geometry. Вы должны передать значение, как и в случае с любой другой функцией.

Несколько двигаясь в этом направлении …

 displayCircleResults(geometry.circleCircum(size), geometry.circleArea(size))
...
def circleCircum(size):
    return math.pi * size**2
  

Я не совсем уверен, как вы ожидаете, что geometry.main() будет работать, но вы не дали ему никакой связи с внешним миром. размер не передается, а radius никуда не отправляется.