菜鸟求问,python语言中'__module__'的作用是啥,求详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了菜鸟求问,python语言中'__module__'的作用是啥,求详解相关的知识,希望对你有一定的参考价值。

首先python语言的基本组织单位是模块,不像Java是一类一文件,python的类、函数都在模块里面,当通过import引入一个函数以后,有时候由于函数签名的同名现象,需要看函数是从那个模块导入进来的,就需要看一下定义函数的的模块名称,这个时候,就使用一下语句来得这个模块名称:

function_name.__module__

不过需要提醒的是这个module名称不一定和import语句前面的from名称完全一致,os模块的open函数的__module__在windows下面是"nt",而django模块的get_version函数的__module__就是"django"

参考技术A __module__
The name of the module the
function was defined in, or
None if unavailable.
Writable

ref http://docs.python.org/2/reference/datamodel.html

#yyds干货盘点#挑战40天从 Python菜鸟变大咖


  • [x] 040.元组_特点_创建的两种方式_tuple()要点
  • [x] 041.元组_元素访问_计数方法_切片操作_成员资格判断_zip()
  • [x] 042.元组_生成器推导式创建元组_总结
  • [x] 043.字典_特点_4种创建方式_普通_dict_zip_formkeys
  • [x] 044.字典_元素的访问_键的访问_值的访问_键值对的访问
  • [x] 045.字典_元素的添加_修改_删除
  • [x] 046.字典_序列解包用于列表元组字典
  • [x] 047.字典_复杂表格数据存储_列表和字典综合嵌套
  • [x] 048.字典_核心底层原理_内存分析_存储键值对过程
  • [x] 049.字典_核心底层原理_内存分析_查找值对象过程
  • [x] 050.集合_特点_创建和删除_交集并集差集运算

一、元组:

  • 列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
  • 因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如下操作:

    • 索引访问
    • 切片操作
    • 连接操作
    • 成员关系操作
    • 比较运算操作
    • 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。

元组的创建:

  • 通过()创建元组。小括号可以省略。
  • 如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数1,(1,)解释为元组

  • 通过tuple()创建元组

  • 总结:
    • tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
    • list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。

二、一个简单的字典:

举个例子:


三、使用字典:

  • 在Python中,字典是一系列键值对。每个键都与一个值相关联,你可使用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。事实上,可将任何Python对象用作字典中的值。
  • 在Python中,字典用放在花括号()中的一系列键值对表示,如前面的示例所示:

  • 键值对是两个相关联的值。指定键时,Python将返回与之相关联的值。键和值之间用冒号分隔,而键值对之间用逗号分隔。在字典中,想存储多少个键值对都可以。
  • 最简单的字典只有一个键值对,如下述修改后的字典alien_0所示:

  • 这个字典只存储了一项有关alien_0的信息,具体地说是这个外星人的颜色。在该字典中,字符串color是一个键,与之相关联的值为green。

访问字典中的值:

  • 上述代码首先定义了一个字典。然后,从这个字典中获取与键points相关联的值(见❶),并将这个值赋给变量new_points。
  • 接下来,将这个整数转换为字符串,并打印一条消息,指出玩家获得了多少分(见❷):

添加键值对:

  • 字典是一种动态结构,可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。

  • 这个字典的最终版本包含四个键值对:原来的两个指定外星人的颜色和分数,而新增的两个指定其位置。
  • 注意:在Python 3.7中,字典中元素的排列顺序与定义时相同。如果将字典打印出来或遍历其元素,将发现元素的排列顺序与添加顺序相同。

先创建一个空字典:

  • 在空字典中添加键值对有时候可提供便利,而有时候必须这样做。
  • 为此,可先使用一对空花括号定义一个字典,再分行添加各个键值对。

修改字典中的值:

  • 要修改字典中的值,可依次指定字典名、用方括号括起的键,以及与该键相关联的新值。


这里更正书中的一处错误!



删除键值对:

  • 对于字典中不再需要的信息,可使用del语句将相应的键值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

由类似对象组成的字典:

  • 字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以使用字典来存储众多对象的同一种信息。

  • 注意:对于较长的列表和字典,大多数编辑器提供了以类似方式设置格式的功能。对于较长的字典,还有其他一些可行的格式设置方式,因此在你的编辑器或其他源代码中,你可能会看到稍微不同的格式设置方式。

使用get()来访问值:

  • 使用放在方括号内的键从字典中获取感兴趣的值时,可能会引发问题:如果指定的键不存在就会出错。

  • 方法get()的第一个参数用于指定键,是必不可少的;第二个参数为指定的键不存在时要返回的值,是可选的:


  • 如果指定的键有可能不存在,应考虑使用方法get(),而不要使用方括号表示法。
  • 注意:调用get()时,如果没有指定第二个参数且指定的键不存在,Python将返回值None。这个特殊值表示没有相应的值。None并非错误,而是一个表示所需值不存在的特殊值,第8章将介绍它的其他用途。

四、遍历字典:

  • 一个Python字典可能只包含几个键值对,也可能包含数百万个键值对。鉴于字典可能包含大量数据,Python支持对字典进行遍历。字典可用于以各种方式存储信息,因此有多种遍历方式:可遍历字典的所有键值对,也可仅遍历键或值。

遍历所有键值对:

  • 探索各种遍历方法前,先来看一个新字典,它用于存储有关网站用户的信息。


五、嵌套:

字典列表:

  • 有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。
  • 你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。正如下面的示例将演示的,嵌套是一项强大的功能。


  • 鉴于要修改前三个外星人,我们遍历一个只包含这些外星人的切片。当前,所有外星人都是绿色的,但情况并非总是如此,因此编写一条if语句来确保只修改绿色外星人。
  • 如果外星人是绿色的,就将其颜色改为yellow,将其速度改为medium,并将其分数改为10,如下面的输出所示:


在字典中存储列表:

  • 每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
  • 在本章前面有关喜欢的编程语言的示例中,如果将每个人的回答都存储在一个列表中,被调查者就可选择多种喜欢的语言。在这种情况下,当我们遍历字典时,与每个被调查者相关联的都是一个语言列表,而不是一种语言;
  • 因此,在遍历该字典的for循环中,我们需要再使用一个for循环来遍历与被调查者相关联的语言列表:

  • 注意:列表和字典的嵌套层级不应太多。如果嵌套层级比前面的示例多得多,很可能有更简单的解决方案。

在字典中存储字典:

首先定义一个名为users的字典,其中包含两个键:用户名aeinstein和mcurie。
与每个键相关联的值都是一个字典,其中包含用户的名、姓和居住地。
在❶处,遍历字典users,让Python依次将每个键赋给变量username,并依次将与当前键相关联的字典赋给变量user_info。
在循环内部的❷处,将用户名打印出来。
在❸处,开始访问内部的字典。
变量user_info包含用户信息字典,而该字典包含三个键:first、last和location。对于每位用户,都使用这些键来生成整洁的姓名和居住地,然后打印有关用户的简要信息(见❹):

始访问内部的字典。
变量user_info包含用户信息字典,而该字典包含三个键:first、last和location。对于每位用户,都使用这些键来生成整洁的姓名和居住地,然后打印有关用户的简要信息(见❹):

各位路过的朋友,如果觉得可以学到些什么的话,点个赞 再走吧,欢迎各位路过的大佬评论,指正错误,也欢迎有问题的小伙伴评论留言,私信。

每个小伙伴的关注都是本人更新博客的动力!!!
请微信搜索【 在下小黄 】文章更新将在第一时间阅读 !


以上是关于菜鸟求问,python语言中'__module__'的作用是啥,求详解的主要内容,如果未能解决你的问题,请参考以下文章

Python教程_编程入门自学教程_菜鸟教程-免费教程分享

angular2 ng build --prod 报错:Module not found: Error: Can't resolve './$$_gendir/app/app.modu

菜鸟求问,IOS和SWIFT的疑问

求问:在使用百度统计的时候,使用“自定义变量”的JS-API部署,请问如何在加载统计代码前调用接口。

Python 中 if __name__ == '__main__' 的正确理解

是否有命名单模块 Python 包的规则?