账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何实现按子路径引入模块
    54
    0

    看到许多公共模块都可以通过子路径进行引入,比如ant-desin:

    import { Button } from 'antd/lib/button';

    但是我自己写的模块发布到npm上,同样尝试使用这种方式引入其中子路径下某一个入口文件,发现会报错:

    const AdaBoost = require('mlhelper/algorithm/AdaBoost');
    
    //or
    import AdaBoost from 'mlhelper/algorithm/AdaBoost';

    直接就报module not found的错误。

    请教如何做才能实现这种按需加载?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 不想般配 普通会员 1楼

      在Python中,你可以使用import语句来按子路径引入模块。import语句的基本语法是import path_to_module,其中path_to_module是你想要导入的模块的路径。

      例如,假设你有一个名为math的模块,其中有一个名为sqrt的函数,你想在另一个名为app.py的文件中导入这个函数,你可以这样做:

      ```python import math

      在app.py文件中使用sqrt函数

      print(math.sqrt(16)) ```

      在这个例子中,math.sqrt(16)将输出4,这就是math.sqrt函数在app.py文件中的作用。

      如果你想按特定的子路径引入模块,你可以使用递归的方式来实现。以下是一个简单的例子:

      ```python import sys

      def import_sub_path(module_path): for item in sys.path: if item.endswith("/"): module_path = item[:-1] + module_path break if module_path not in sys.modules: sys.modules[module_path] = import(module_path)

      在app.py文件中使用sqrt函数

      import_sub_path("/path/to math")

      在其他.py文件中导入sqrt函数

      from app import sqrt

      print(sqrt(16)) ```

      在这个例子中,import_sub_path函数接收一个子路径作为参数,然后遍历这个子路径中的所有文件和子路径。如果找到一个文件或子路径,它就将这个文件或子路径的路径作为参数,然后递归地调用import_sub_path函数,直到找到一个没有递归调用的文件或子路径。

      然后,import_sub_path函数会在指定的子路径中导入模块,然后你可以在app.py文件中使用sqrt函数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部