小能豆

何导入同一目录或子目录内的类?

javascript

我有一个存储所有.py文件的目录。

bin/
   main.py
   user.py # where class User resides
   dir.py # where class Dir resides

我想在main.py中使用user.pydir.py中的类。 如何将这些 Python 类导入main.py?此外,如果user.py位于子目录中, 我该如何导入类?

User
bin/
    dir.py
    main.py
    usr/
        user.py

阅读 68

收藏
2024-07-15

共1个答案

小能豆

要从给定的目录结构导入类,可以按照以下步骤user.py操作dir.pymain.py

场景 1:user.pydir.py同一个目录中

bin/
   main.py
   user.py  # where class User resides
   dir.py   # where class Dir resides

在中main.py,您可以像这样导入类:

# main.py
from user import User
from dir import Dir

# Now you can use User and Dir
user_instance = User()
dir_instance = Dir()

场景 2:user.py在子目录中

bin/
    dir.py
    main.py
    usr/
        user.py

在这种情况下,您需要User从子目录导入usr。确保usr包含一个__init__.py文件(即使它是空的)以将其标记为包。这可能看起来像:

bin/
    dir.py
    main.py
    usr/
        __init__.py  # this file can be empty
        user.py

在中main.py,您可以像这样导入类:

# main.py
from usr.user import User
from dir import Dir

# Now you can use User and Dir
user_instance = User()
dir_instance = Dir()

遵循的步骤:

  1. 确保usr目录中有一个__init__.py文件:这将标记该目录为一个包并允许您从中导入。
  2. 使用正确的导入语句main.py
  3. 对于同一目录中的类,使用from filename import ClassName
  4. 对于子目录中的类,使用from subdirectory.filename import ClassName

通过遵循这些步骤,您应该能够成功地从同一目录和子目录导入类。

2024-07-15