首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你还用笨方法查看Python模块含有的内容吗?一文教你扔掉它

前几次和大家重点聊了Python模块和包相关的东东,希望大家已经对这个知识点已经烂熟于心啦,那今天呢,咱们再最后一次聊聊Python模块相关的东东吧,作为最后一次,咱们聊点啥呢,想了想最后聊点小技巧作为Python模块相关知识的结束吧,同样希望大家能够记住,并用于以后的工作中哦!

好啦,那咱们就开始吧!

首先呢,咱们想象一下哈,当咱们把模块导入你的工程之后呢,你为了使用这个模块肯定会想了解一些这个模块包含哪些东东啦、包含哪些功能啦,对吧,比如你想知道这个模块包含哪些变量啦,还包含哪些函数啦或者还包含哪些类啦,还有可能哦,你也可能想看一下这个模块中所包含的帮助信息哦......

那说了这么多,咱们该怎么做呢,到这肯定有人说你把这个模块打开看一下不就知道了吗?对对对,这是个解决办法,但是如果这个模块包含很多很多滴东东的话,那这就成了一个笨办法了哦!

还是那句话,Python之所以这么流行是有道理滴,而且Python很聪明哦,因为它早就想到这个问题啦,所以呢,Python有它滴解决方案哦,那就是可以用Python的dir()函数哦!好啦,那咱们就聊聊这个dir()函数吧!

啥是dir()函数

到底啥是dir()函数呢?其实呢,dir()函数时Python定义的函数,可以直接拿来调用的哦,这个dir()函数调用后,它可以给你返回模块或者类中所包含滴全部东东哦,这些东东有你想知道的变量、函数、类或者方法等等等等。

好啦,为了能够让大家理解的更深刻,咱们还是老习惯喽,举个“栗子”:比如咱们看看Python内置定义和封装的string模块的东东,首先你要先把这个string模块导入哦:

看到了吗,当你将string模块导入后,然后调用dir(string)函数,就可以将string模块中的东东以列表的形式列出哦,到这可能大家已经注意到啦,就是string模块中有好多带“__”开头的东东,这些东东是啥呢?告诉你哦,它们是一些模块想隐藏的东东哦,比如string模块中的这些以双下划线开头的东东就是string模块的变量或方法哦,那你肯定清楚呀,既然是Python模块想隐藏的东东,肯定是不想被人看到和被人调用滴哦,对啦,这个理解是正确地,那你可能回问啦:能不能不显示这些“无用”的东东呢?答案是当然可以啦!

就是用个过滤判断的语句把以下划线开头的模块中的东东排除啦:

看到了吗,上面咱们定义了一个dongdong的变量,然后对dir(string)函数所返回的东东进行了判断和过滤,让它只显示不以下划线开头的东东哦!这个小技巧希望以后大家能够用到平常的工作中哦!它会提高你滴查找效率滴!

当然啦,使用dir()函数查看Python模块中包含的东东只是一种方法,此外还有其他技巧哦,就是模块自身所带的__all__变量也是可以查看滴哦,咱们继续介绍一些模块的__all__变量哦!

啥是__all__变量

啥是模块的__all__变量呢?说白了,这玩意(“__all__”)就相当于模块的功能接口哦,通过调用它就可以看到模块中所包含的东东啦!不信的话,咱们就试一下吧,当然也是举个“栗子”哦:

看到了吗,调用Python模块滴__all__变量也可以以列表滴形式列出模块中所包含滴东东哦!

最后呢,大家已经要记住哦,以上咱们所聊滴dir()函数和模块滴__all__变量都可以方便滴查看Python模块所包含滴内容哦!以后就不要用打开模块程序文件来查找的笨办法了哈,记住dir()和__all__哦!

好啦,作为Python相关模块内容的结束,咱们最后再补充两个小知识点吧,如下所示哦:

小知识点1:学会使用__doc__来查看说明解释性内容哦

举个“栗子”:咱们用__doc__查看一下string模块中”digits”的解释内容哦,如下图所示。

小知识点2:学会使用__file__来查看模块的源文件路径哦

举个“栗子”:咱们如果想查看一下研究一下某个Python模块的源代码,可以用这种方法来快速找到这个模块所在滴位置哦,比如咱们还是想找一下string模块,如下图所示。

看到了吗,它会返回所查找的模块的实际所在滴路径哦,这很方便你快速找到它哦!

好啦,关于Python模块相关的所有东东,咱们这几天已经全部聊完了,下次呢,就再聊点Python的别的东东了哦!今天就到这吧,下次再见哦!

敬请关注“品位集结号”,为您带来意外的小知识!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201116A0I8NE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券