千家信息网

如何在python中实现导入一个需要传参的模块

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"如何在python中实现导入一个需要传参的模块",内容详细,步骤清晰,细节处理妥当,希望这篇"如何在python中实现导入一个需要传参的模块"文章能帮助大家解决疑惑,下面跟着小
千家信息网最后更新 2026年11月01日如何在python中实现导入一个需要传参的模块

本文小编为大家详细介绍"如何在python中实现导入一个需要传参的模块",内容详细,步骤清晰,细节处理妥当,希望这篇"如何在python中实现导入一个需要传参的模块"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

最近跑实验,遇到了一个问题:

由于实验数据集比较多,每次跑完一个数据集就需要手动更改文件路径,再将文件传到服务器,再运行实验,这样的话效率很低,必须要专门看着这个实验,啥时候跑完就手动修改运行下一个实验。我个人无法忍受这样低效率,就想能不能有什么解决的办法。

我们期望的解决办法是通过命令行传参来解决这个问题,因为接下来是需要编写shell脚本来批量运行实验,如果用输入语句的方式显得太笨拙。

在编写实验代码的时候,我将所有的参数集中到一个py文件中,这样便于后期的维护,现在的问题就是需要通过命令行传参的方式改变该文件中的某些值。

关于传参,python中提供了argparse这一模块。通过这个模块 就能很快的实现命令行传参的功能。

下面举个例子:

文件test1.py

import argparsefrom argparse import RawTextHelpFormatter              parse = argparse.ArgumentParser(description="The parameters for the feature select method", formatter_class=RawTextHelpFormatter)parse.add_argument('name', type = str) args = parse.parse_args() name = args.name

文件test3.py

import test1 str = test1.name + 'asdasdasd'

文件test2.py

import test3 print test3.str

我们可以通过改变命令行的参数来改变这个name的值,其实关于这一点也比较好理解,我们可以想成python将这三份代码拼接在一起,再一起执行。

这样就实现了我刚才想要的功能。

补充:python调用模块时传参出错的解决方案

首先定义了一个Login模块

传参是两个:username,password

#coding=utf-8def login(self,username,password):    driver=self.driver    self.driver.implicitly_wait(30)#不加等待会出错    driver.switch_to.frame(0)    driver.find_element_by_class_name("dlemail").clear()    driver.find_element_by_class_name('dlemail').send_keys("username")    driver.find_element_by_class_name('dlpwd').clear()    driver.find_element_by_class_name('dlpwd').send_keys("password")    driver.find_element_by_id("dologin").click()def logout(self):    driver=self.driver    driver.find_element_by_link_text(u"退出").click()    driver.quit()

在Test.login中调用该模块:

#coding=utf-8from selenium import webdriverimport unittest,timefrom public import Loginclass TestLogin(unittest.TestCase):    def setUp(self):        self.driver=webdriver.Chrome()        self.driver.implicitly_wait(30)        self.base_url = "http://www.126.com/"        self.verificationErrors = []    def test_login(self):        driver=self.driver        driver.get(self.base_url)        Login.login(self,"jinbian3333","jinbian76")#传参是这两个        text=driver.find_element_by_id("spnUid").text        self.assertEqual(text,"jinbian3333@126.com")        Login.logout(self)    def tearDown(self):        self.driver.quit()        self.assertEqual([],self.verificationErrors)if __name__ == '__main__':    unittest.main()

可是运行后发现出错:

明明传参是"jinbian3333","jinbian76",为什么登录信息是图中呢?

回头查看被调用模块,

按我理解就是 加了" " 就不是变量了,是常量了, 你调用了该模块,即使传参 它还是按照模块本身的设置:"username""password"运行

读到这里,这篇"如何在python中实现导入一个需要传参的模块"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

模块 文件 实验 运行 命令 中实 文章 问题 两个 代码 内容 办法 功能 参数 就是 手动 数据 方式 时候 妥当 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 中国互联网科技工作委员会毛军 深圳恒合互联网络科技有限公司 科技企业和互联网企业 科技互联网公司logo 天扬科技互联网广告 互联网科技教育视频 全球顶尖互联网科技公司 湖北码尼互联网科技有限公司电话 南平创想时代互联网科技有限公司 辽宁互联网新科技 996高科技互联网公司 互联网第三次科技革命特征 富国互联网金融科技混合基金 南京一网一红互联网科技有限公司 新氧科技和美国互联网有关系吗 广东鹅鹅鹅互联网科技有限公司 国产互联网科技公司 安徽零酒互联网科技有限公司 互联网科技创新创业项目 互联网科技开发公司 四川狮子座互联网科技 国外互联网科技网站 汽车互联网创新科技园 和信科技工业互联网 注册互联网科技公司经营范围大全 科技赋能视角下互联网保险发展 互联网科技公司营业执照怎么办理 长沙互联网科技 亚光科技低轨卫星互联网
0