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基础方法封装(二)
154 0
软件测试|selenium+python基础方法封装(二)
|
Web App开发 Java 测试技术
软件测试|selenium+python基础方法封装(一)
软件测试|selenium+python基础方法封装(一)
183 0
软件测试|selenium+python基础方法封装(一)
|
C语言 Python
通过题目入门python基础1
简介:本文通过,python的基础题目,带领大家入门python的基础语法,以实用主义为主。
187 0
通过题目入门python基础1
|
存储 Python
Python基础笔记(持续更新...)
Python基础笔记(持续更新...)
|
数据安全/隐私保护 Python
Python操作ppt和pdf基础
Python操作ppt和pdf基础
290 0
Python操作ppt和pdf基础
|
Python Windows
Python操作word基础
Python操作word基础
181 0
Python操作word基础
|
Python
Python操作excel基础
Python操作excel基础
124 0
Python操作excel基础
|
机器学习/深度学习 存储 人工智能
【paddle领航团基础python课程】三岁水课—结营大作业
【paddle领航团基础python课程】三岁水课—结营大作业
121 0
【paddle领航团基础python课程】三岁水课—结营大作业
|
Python
[Paddle领航团python基础课程大作业一]英文词频的统计任务
[Paddle领航团python基础课程大作业一]英文词频的统计任务
138 0