电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python ellipsis 的用法詳解

瀏覽:11日期:2022-07-04 16:22:23

背景

在 Python 的基本類型中單例模式的值有三個 None 類型的 None ,NotImplemented 類型的 NotImplemented, Ellipsis 類型的 ... 。

None 已經(jīng)用的爛大街了,NotImplemented 也比較常用,唯獨 ... 在江湖上只知它是三巨頭之一,但不知其用法。

Ellipsis

Ellipsis 在 python 中代表“省略”,用現(xiàn)在的流形語來表達就是“老鐵,不要在意這些細(xì)節(jié)!”。哪什么時候要告訴別人不要在意這些細(xì)節(jié)呢?其中的一個場景就是隨機值。

用于文檔測試

假設(shè)我們編寫了一個類,要想知道這個有沒有語法層面的錯誤,只要簡單的調(diào)用一下就能測試出來。為了把這個測試自動化,于是做成了文檔測試。

#!/usr/bin/evn python3class Person(object): '''人類類型 Parameters: ---------- name: str age: int Return: ------ >>> Person() <main.Person object at 0x7ff36c1ca250> ''' name = ’’ age = 0 def __init__(self, name: str = ’tom’, age: int = 10) -> ’Person’: '''初始化 ''' self.name = name self.age = age def say_hello(self) -> str: '''返回打招呼信息 ''' return f'Hello My name is {self.name} .'

當(dāng)我們運行測試用例時會報錯,原因是每次創(chuàng)建的對象,它的內(nèi)存地址并不等于測試用例中指定的哪個,而我們的用例上寫死了。誠然這個問題用 unittest 可以解決,但是這個不是這里要講的。

python3 -m doctest main.py -vTrying: Person()Expecting: <main.Person object at 0x7ff36c1ca250>**********************************************************************File '/private/tmp/main.py', line 12, in main.PersonFailed example: Person()Expected: <main.Person object at 0x7ff36c1ca250>Got: <main.Person object at 0x7fe4e078ac70>3 items had no tests: main main.Person.__init__ main.Person.say_hello**********************************************************************1 items had failures: 1 of 1 in main.Person1 tests in 4 items.0 passed and 1 failed.***Test Failed*** 1 failures.

哪如何才能告訴 doctest 這位老鐵不要在意返回值細(xì)節(jié)呢?答案是加上 Ellipsis 這個指令,改造后的代碼如下。

#!/usr/bin/evn python3class Person(object): '''人類類型 Parameters: ---------- name: str age: int Return: ------ >>> Person() #doctest: +ELLIPSIS <main.Person object at 0x...> ''' name = ’’ age = 0 def __init__(self, name: str = ’tom’, age: int = 10) -> ’Person’: '''初始化 ''' self.name = name self.age = age def say_hello(self) -> str: '''返回打招呼信息 ''' return f'Hello My name is {self.name} .'

運行測試用例這下可以通過了。

python3 -m doctest main.py -vTrying: Person() #doctest: +ELLIPSISExpecting: <main.Person object at 0x...>ok3 items had no tests: main main.Person.__init__ main.Person.say_hello1 items passed all tests: 1 tests in main.Person1 tests in 4 items.1 passed and 0 failed.Test passed.

其它

如果我們是為模塊添加測試用例,那么可以這樣做,會方便一些。

#!/usr/bin/evn python3class Person(object): '''人類類型 Parameters: ---------- name: str age: int Return ------ >>> Person() #doctest: +ELLIPSIS <...Person object at 0x...> ''' name = ’’ age = 0 def __init__(self, name: str = ’tom’, age: int = 10) -> ’Person’: '''初始化 ''' self.name = name self.age = age def say_hello(self) -> str: '''返回打招呼信息 ''' return f'Hello My name is {self.name} .'if __name__ == '__main__': # 因為在模塊在被 import 的時候 __name__ 直接等于 模塊名 不等于 “__main__” ,所以在作為模塊被導(dǎo)入時并不會執(zhí)行測試用例 # 如果想執(zhí)行測試用例直接執(zhí)行模塊就行 import doctest doctest.testmod()

以上就是Python ellipsis 的用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python ellipsis的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: RO反渗透设备_厂家_价格_河南郑州江宇环保科技有限公司 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 土壤墒情监测站_土壤墒情监测仪_土壤墒情监测系统_管式土壤墒情站-山东风途物联网 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 米顿罗计量泵(科普)——韬铭机械| 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 东莞市海宝机械有限公司-不锈钢分选机-硅胶橡胶-生活垃圾-涡电流-静电-金属-矿石分选机 | 北京中创汇安科贸有限公司| 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 120kv/2mA直流高压发生器-60kv/2mA-30kva/50kv工频耐压试验装置-旭明电工 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 深圳律师咨询_深圳律师事务所_华荣【免费在线法律咨询】网 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 工业洗衣机_工业洗涤设备_上海力净工业洗衣机厂家-洗涤设备首页 bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 重庆小面培训_重庆小面技术培训学习班哪家好【终身免费复学】 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 代理记账_免费注册公司_营业执照代办_资质代办-【乐财汇】 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 胶原检测试剂盒,弹性蛋白检测试剂盒,类克ELISA试剂盒,阿达木单抗ELISA试剂盒-北京群晓科苑生物技术有限公司 | 传爱自考网_传爱自学考试网| 北京公寓出租网-北京酒店式公寓出租平台 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 膜结构车棚|上海膜结构车棚|上海车棚厂家|上海膜结构公司 | SPC工作站-连杆综合检具-表盘气动量仪-内孔缺陷检测仪-杭州朗多检测仪器有限公司 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 |