关于模块导入方式:

  import  random

  print random.choice(range(10))

  from  random import choice

  print choice(range(10))

第一种方法:将模块的名字设置为一个隐含在名字空间里的全局变量,这样就好像访问全局属性那样访问choice函数;

第二种方法:直接把choice引入到全局名字空间里来(而非模块的名字),因此不再需要把这个属性当初模块的成员,实际上我们也只是拥有这个属性而已;

python中存在的误解:以为第二种方法只导入了个函数,而没有导入整个模块,这个不对的;整个模块已经被导入了,但是只有那个函数的引用被保存下来,所有;from-import

这种语法并不能带来性能上的差异,也没有节省内存一说;

能不能重复导入模块:

  很多人担忧的一个问题是有两个模块m.py 和n.py都导入了foo.py模块,当m导入n时,foo岂不是被导入了两次?简单的说,当python碰到一个已经加载的模块又被导入时,

它会跳过加载的过程,所以无需担心额外消耗内存的问题;

python是“传引用的“ 还是”传值的“:

  这个问题不能简单的使用是或者不是来回答,只能说看情况而定-----有的对象在传入函数时是传引用,而有些则是被复制进来,即传值;判断的依据就是看对象的可改变性(mutability),而这一点取决于对象的类型;python程序员通常不用“传值”还是“传引用“这种说法,取而代之的是对象是可变的(mutable)还是不可变的(immutable)。

   简单的类型或者“标量”类型,包括整数或其他数字类型,str 和 unicode这样的字符串类型,以及元组都是不可变的;

列表、字典、类、类实例等都是可变的;

实例:

 >>> mylist = [1, 'a' , ['', 'bar']
... ]
>>> mylist2 = list(mylist)
>>> mylist2[0] = 2
>>> mylist2[2][0] = 'zzz'    #修改列表的第一个元素
>>> print mylist
[1, 'a', ['zzz', 'bar']]
>>> print mylist2
[2, 'a', ['zzz', 'bar']]
>>>

总结:不可变对象(整数等)真正的被复制, 可变对象只是复制了一个对它们的引用,即在内存中只有一份对象,而有两份引用;

这就涉及到一个 ”深拷贝“ 的问题

python基础补充的更多相关文章

  1. 3.python基础补充(集合,collection系列,深浅拷贝)

    一.集合 1.集合(set): 把不同的元素组成一起形成集合,是python基本的数据类型.集合元素(set elements):组成集合的成员 python的set和其他语言类似, 是一个无序不重复 ...

  2. 09: python基础补充

    1.1 闭包 1.闭包概念 1. 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用,这样就构成了一个闭包 2. 一般情况下,在我们认知当中,如果一个函数 ...

  3. python基础补充内容

    知识内容: 1.三元运算表达式 2.python代码编写规范 3.模块导入与使用 4.python文件名 5.python脚本的"__name__"属性 6.python之禅 一. ...

  4. Python基础补充(二) 多核CPU上python多线程并行的一个假象【转】

    在python上开启多个线程,由于GIL的存在,每个单独线程都会在竞争到GIL后才运行,这样就干预OS内部的进程(线程)调度,结果在多核CPU上: python的多线程实际是串行执行的,并不会同一时间 ...

  5. Python 基础补充(一) 列表、元组、集合、字典的区别和相互转换

    一.列表.元组.集合.字典的区别   列表 元组 集合 字典 英文 list tuple set dict 可否读写 读写 只读 读写 读写 可否重复 是 是 否 是 存储方式 值 值 键(不能重复) ...

  6. 第三篇.6、python基础补充

    ''' 不可变:数字,字符串,元组 可变:列表,字典 原子:数字,字符串 容器:列表,元组,字典 直接访问:数字 顺序:字符串,列表,元组 映射访问:字典 ''' #一一对应 a,b,c,d,e='h ...

  7. 十一. Python基础(11)—补充: 作用域 & 装饰器

    十一. Python基础(11)-补充: 作用域 & 装饰器 1 ● Python的作用域补遗 在C/C++等语言中, if语句等控制结构(control structure)会产生新的作用域 ...

  8. 万恶之源 - Python基础知识补充

    编码转换 编码回顾: 1. ASCII : 最早的编码. ⾥⾯有英⽂⼤写字⺟, ⼩写字⺟, 数字, ⼀些特殊字符. 没有中⽂, 8个01代码, 8个bit, 1个byte 2. GBK: 中⽂国标码, ...

  9. python进阶08 MySQL基础补充

    python进阶08 MySQL基础补充 本次课程都是基于三张表格的使用 一.子查询 #如何找到‘张三’的成绩 #思路:先找到张三的学号,在拿这个张三的学号到成绩表里面去匹配,得出成绩 #如何用一条查 ...

随机推荐

  1. apktool 反翻译错误

    -出现 UndefinedResObject Exception : 这是因为被反编译的apk中有当前的framework不支持的属性:解决方式如下: 1.删除C:\Users\Administrat ...

  2. K-Modes算法[聚类算法]

    聚类算法k-Modes的实现 <?php /* *Kmodes算法(聚类算法的实现) */ /* *获取簇的数目 */ //----------------------------------- ...

  3. python 发送安全邮件

    用python 写了一个发送邮件的脚本,配上host 和端口,发现一直报错: smtplib.SMTPException: No suitable authentication method foun ...

  4. 阿里云服务器linux(centos)常用命令

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  5. Windows phone 8.1 MessageBox 变了哦!

    using Windows.UI.Popups; public async void MessageBoxShow(string content, string caption) { MessageD ...

  6. java 构造方法 constructor demo笔记

    demo 地址 http://pan.baidu.com/s/1bo2FG1T package com.ws.study; /** * @author Administrator * */ publi ...

  7. MOQ

    MOQ:(Minimum order Quantity) 最低订货数量   MOQ 即最小订购量(最小订单量)   对每个产品设定建议订单量是补货的方法之一.另外要注意订单的有效性,这是由供应商制定的 ...

  8. 浅谈 android-query

    介绍:android-query他是在GitHub上的一个开源轻量级的封装库,它集成了网络 .图片加载等模块,可以应用在android中的一些异步应用以及UI的操纵上,通过使用这个框架,使androi ...

  9. [置顶] C++基础之六:运算符的重载

    网上太多有关运算符的重载了,但是写的太过的详细,不适合新手入门,特别是那什么++和--的前增量后增量重载,一元二元运算符重载,特殊运算符,下标运算符,new和delete,甚至是指针运算符的重载,吓退 ...

  10. smarty如何处理状态值的显示

    比如状态,有效或者无效.这个数据库中保存的是1或者2这样的字段. 显示在列表的时候不能是1或者2吧. 以前,我都是在后台foreach,处理的.感觉处理之后,前台就不灵活了.这个值就被替换成了文字. ...