Вызов функции из другого модуля в Python - PullRequest
0 голосов
/ 27 февраля 2019

Я пишу основную программу для спряжения глаголов в испанском языке.В настоящее время у меня есть два файла: main.py и test.py.Я использую test.py для проверки функции.
В настоящее время main.py имеет:

import test as present

print("Welcome to Spanish Verb Conjugator")
verb = raw_input("Enter the verb: ")
length = len(verb)

#print(length)

v1 = length - 2
r1 = length - 1
v = verb[v1]
r = verb[r1]
end = str(v+r)
stem = verb[0:v1]


tense = raw_input("Choose your tense: ")
if tense == "present":
    test.testt(end)

, в конце я попытался вызвать функцию testt, которая находится в test.py test.py имеет:

import main 

def testt(ending):
    if ending == "ar":
        form = raw_input("Form: ")
        if form == "yo":
            return form + " " + stem + "o"

Моя ошибка:

Traceback (most recent call last):
  File "/home/ubuntu/workspace/main.py", line 1, in <module>
    import test
  File "/home/ubuntu/workspace/test.py", line 1, in <module>
    import main 
  File "/home/ubuntu/workspace/main.py", line 19, in <module>
    test.testt(end)
AttributeError: 'module' object has no attribute 'testt'

Я использую Python 2.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Вы импортируете test как present.Вместо использования test.testt() используйте present.testt().Кроме того, ваш код страдает от проблемы circular import. Проблема кругового импорта

0 голосов
/ 27 февраля 2019

Измените ваш код в main.py на:

import test 

print("Welcome to Spanish Verb Conjugator")
verb = raw_input("Enter the verb: ")
length = len(verb)

#print(length)

v1 = length - 2
r1 = length - 1
v = verb[v1]
r = verb[r1]
end = str(v+r)
print end
stem = verb[0:v1]


tense = raw_input("Choose your tense: ")
if tense == "present":
    test.testt(end)

и измените test.py на:

def testt(ending):
    if ending == "ar":
        form = raw_input("Form: ")
        if form == "yo":
            return form + " " + stem + "o"

Более того ,

stem не будет работать в test.py, как это определено в main.py

...