国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

在python中實現導入一個需要傳參的模塊

瀏覽:2日期:2022-06-20 08:01:29
最近跑實驗,遇到了一個問題:

由于實驗數據集比較多,每次跑完一個數據集就需要手動更改文件路徑,再將文件傳到服務器,再運行實驗,這樣的話效率很低,必須要專門看著這個實驗,啥時候跑完就手動修改運行下一個實驗。我個人無法忍受這樣低效率,就想能不能有什么解決的辦法。

我們期望的解決辦法是通過命令行傳參來解決這個問題,因為接下來是需要編寫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運行:

在python中實現導入一個需要傳參的模塊

我們可以通過改變命令行的參數來改變這個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.driverdriver.get(self.base_url)Login.login(self,'jinbian3333','jinbian76')#傳參是這兩個text=driver.find_element_by_id('spnUid').textself.assertEqual(text,'jinbian3333@126.com')Login.logout(self) def tearDown(self):self.driver.quit()self.assertEqual([],self.verificationErrors)if __name__ == ’__main__’: unittest.main()可是運行后發現出錯:

在python中實現導入一個需要傳參的模塊

明明傳參是'jinbian3333','jinbian76',為什么登錄信息是圖中呢?

回頭查看被調用模塊,

在python中實現導入一個需要傳參的模塊

按我理解就是 加了' ' 就不是變量了,是常量了, 你調用了該模塊,即使傳參 它還是按照模塊本身的設置:“username”'password'運行

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲综合日韩精品欧美综合区 | 在线播放精品一区二区啪视频 | 日韩欧美一区二区精品久久 | 亚洲国产精品成人午夜在线观看 | 有码一区 | 日韩一级欧美一级 | 欧洲美女a视频一级毛片 | 中文字幕视频在线 | 久久免费视频在线 | 亚洲精品国产第一区二区多人 | 日本精品视频一区二区三区 | 国产精品激情丝袜美女 | 国产亚洲欧美视频 | 久久精品vr中文字幕 | 在线观看免费视频国产 | 精品一区二区三区免费视频 | 亚洲线精品一区二区三区 | 欧美精品久久久久久久影视 | 日本道色 | 京野结衣免费一区二区 | 国产在线日韩 | 欧美性久久久久 | 最新国产午夜精品视频不卡 | 怡红院成人永久免费看 | 成年人三级视频 | 一区二区三区高清不卡 | 色伊人国产高清在线 | 日本无遮 | yy6080福利午夜免费观看 | 黄色激情网站 | 久久不见久久见免费影院www日本 | 国产精品久久久久久久久免费 | 给我一个可以看片的www日本 | 午夜性生活视频 | 一级一级 a爱片免费视频 | 国产成人a在一区线观看高清 | 一级全黄视频 | 亚洲二区在线观看 | 日韩欧美特级毛片 | 欧美一级特黄刺激爽大片 | 欧美性猛交xxxx免费看手交 |