как импортировать функцию из подкаталога в Python3 - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть проект со следующей структурой:

enter image description here

TestDir. init .py содержит:

from . import TestSubDirFile

TestDir.TestSubDirFile.py содержит:

class TestSubDirFile:
def test_funct(self):
    print("Hello World")

ds_scheduler.py содержит:

from TestDir import TestSubDirFile as tp

def test_job():
    testobj = tp.test_funct()
    print("Test job executed.")

if __name__ == "__main__":
     test_job()

Получение вывода в виде:

Traceback (most recent call last):
 File "C:/Python_Projects/Test/com/xyz/ds/ds_schedular.py", line 9, in <module>
test_job()
 File "C:/Python_Projects/Test/com/xyz/ds/ds_schedular.py", line 5, in test_job
testobj = tp.test_funct()
AttributeError: module 'TestDir.TestSubDirFile' has no attribute 'test_funct'

1 Ответ

0 голосов
/ 01 октября 2018

Согласно вашей структуре каталогов

ds_scheduler.py
TestDir - имя каталога
- TestSubDirFile.py - имя файла Python

в пределах TestSubDirFile.py файл, который вы определили для своего класса с именем TestSubDirFile .

from TestDir import TestSubDirFile as tp

Согласно приведенному выше утверждению об импорте, вы толькодоступ к файлу py.

Чтобы получить доступ к методу test_func () в классе, вам нужно выполнить следующие шаги:

tsdf = tp.TestSubDirFile() tsdf.test_funct()

Надеюсь, это поможет

...