python基础补充

简介: 关于模块导入方式:   import  random   print random.choice(range(10)) 和   from  random import choice   print choice(range(10)) 第一种方法:将模块的名字设置为一个隐含在名字空间里的全...

关于模块导入方式:

  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这样的字符串类型,以及元组都是不可变的;

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

实例:

 1 >>> mylist = [1, 'a' , ['223', 'bar']
 2 ... ]
 3 >>> mylist2 = list(mylist)
 4 >>> mylist2[0] = 2
 5 >>> mylist2[2][0] = 'zzz'    #修改列表的第一个元素
 6 >>> print mylist
 7 [1, 'a', ['zzz', 'bar']]
 8 >>> print mylist2
 9 [2, 'a', ['zzz', 'bar']]
10 >>> 

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

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

 

相关文章
|
前端开发 测试技术
软件测试|selenium+python基础方法封装(二)
软件测试|selenium+python基础方法封装(二)
软件测试|selenium+python基础方法封装(二)
|
Web App开发 Java 测试技术
软件测试|selenium+python基础方法封装(一)
软件测试|selenium+python基础方法封装(一)
软件测试|selenium+python基础方法封装(一)
|
C语言 Python
通过题目入门python基础1
简介:本文通过,python的基础题目,带领大家入门python的基础语法,以实用主义为主。
239 0
通过题目入门python基础1
|
数据安全/隐私保护 Python
Python操作ppt和pdf基础
Python操作ppt和pdf基础
385 0
Python操作ppt和pdf基础
|
Python Windows
Python操作word基础
Python操作word基础
262 0
Python操作word基础
|
Python
Python操作excel基础
Python操作excel基础
191 0
Python操作excel基础
|
机器学习/深度学习 存储 人工智能
【paddle领航团基础python课程】三岁水课—结营大作业
【paddle领航团基础python课程】三岁水课—结营大作业
183 0
【paddle领航团基础python课程】三岁水课—结营大作业
|
Java C语言 Python
【paddle领航团基础python课程】三岁水课—python基础
大家好,这里是三岁,别的不会,擅长白话,今天就是我们的白话系列,内容就是大家看的迷迷茫茫的python基础,由于python是自学的,我也翻看了很多的教学视频和书籍,也看过部分的文档,写过自己的心得与笔记,那么接下看看,让我们一起来看看内容
163 0
【paddle领航团基础python课程】三岁水课—python基础
|
分布式计算 Python
python基础进阶 高阶函数基础
大家好,这里是三岁接下来带来的是传说中的高阶函数,如有不足请大家多多指出
162 0
python基础进阶 高阶函数基础

热门文章

最新文章