5、Python里面如何拷贝一个对象?
a、copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
b、copy.deepcopy 深拷贝 拷贝对象及其子对象
一个很好的例子:
>>> import copy
>>> a = [1, 2, 3, 4, ['a', 'b']] #原始对象
>>> b = a #赋值,传对象的引用
>>> c = copy.copy(a) #对象拷贝,浅拷贝
>>> d = copy.deepcopy(a) #对象拷贝,深拷贝
>>> a.append(5) #修改对象a
>>> a[4].append('c') #修改对象a中的['a', 'b']数组对象
>>> print 'a = ', a
>>> print 'b = ', b
>>> print 'c = ', c
>>> print 'd = ', d
a、copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
b、copy.deepcopy 深拷贝 拷贝对象及其子对象
一个很好的例子:
>>> import copy
>>> a = [1, 2, 3, 4, ['a', 'b']] #原始对象
>>> b = a #赋值,传对象的引用
>>> c = copy.copy(a) #对象拷贝,浅拷贝
>>> d = copy.deepcopy(a) #对象拷贝,深拷贝
>>> a.append(5) #修改对象a
>>> a[4].append('c') #修改对象a中的['a', 'b']数组对象
>>> print 'a = ', a
>>> print 'b = ', b
>>> print 'c = ', c
>>> print 'd = ', d
输出结果:
a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c = [1, 2, 3, 4, ['a', 'b', 'c']]
d = [1, 2, 3, 4, ['a', 'b']]
此题答案来自http://www.jb51.net/article/15714.htm
6、Python中pass语句的作用是什么?
pass就是代表什么都不做。
a、在定义方法时,可以使用pass占位
例如
def sum():
pass
这样在语句上就不会报错了
b、在while循环中
例如
while (True):
pass
此时由于什么都不做是一个死循环。
pass就是代表什么都不做。
a、在定义方法时,可以使用pass占位
例如
def sum():
pass
这样在语句上就不会报错了
b、在while循环中
例如
while (True):
pass
此时由于什么都不做是一个死循环。