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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Python 如何动态调用py文件
    55
    0

    目的

    能够动态地调用不同py文件,传入参数并获得返回参数。下面是想象中的实现方法。

    a.py :

    path_file = 'b.py'    # 动态指定py文件位置
    para_in = 123
    para_out = xxx(path_file,para_in)    # 该函数是path_file(这里是b.py)文件里的函数,传入参数,返回参数赋给para_out

    b.py :

    def xxx(para):
        执行方法(例: para += 1)
        return para

    已知方法

    已经搜寻过能够实现类似的方法有几个,但都不够理想:

    • import

      下面是用 import 实现「目的」描述的方法,但不能实现动态地加载py文件,且 Python PEP8 规范不建议 import 放在执行内容中:
      a.py :

      import b
      para_in = 123
      para_out = b.xxx(para_in)

      b.py :

        def xxx(para):
        执行方法(例: para += 1)
        return para
    • exec()

      下面是用 exec() 实现「目的」描述的方法,但似乎不太“干净”,Pycharm 会警告在调用py文件的方法前,事先声明和py文件中同样函数名的函数(执行方法可以随意写,因为会被py中同名函数覆盖):
      a.py :

      def xxx(para):
        return
      path_file = 'b.py'
      para_in = 123
      
      with open(path_file, 'r') as file:
        exec(file.read())
        para_out = xxx(para_in)

      b.py :

      def xxx(para):
        执行方法(例: para += 1)
        return para

    问题

    上面的方法虽然能实现「目的」,但似乎不够理想。所以问题是,是否有更好的办法实现「目的」?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部