python day6
拷贝
需要导入模块
浅拷贝:仅拷贝父对象,不会拷贝对象内部的子对象;
深拷贝:完全拷贝父对象和子对象。
切片是一种浅拷贝,建议用list()替代。http://www.cnblogs.com/ifantastic/p/3811145.html
list()传入数列(list也是一种数列),返回list。
并且接受生成器(也是一种数列)。
切片不适用于生成器。
a[:],list(a),a*1, copy.copy(a)都是浅拷贝,如果复制的list里边的元素还是list,那复制完后的list的元素变量还是指向同一个子list。
只有copy.deepcopy(a)才是完全复制。
utf-8
python默认的是以ASCII码方式编码的,如果含有中文,要在程序的最开头,也就是第一句的位置,写:
# -*- coding:utf-8 -*-
或者简单点的:
# coding:utf-8
那么编码方式就是utf-8。
类方法、静态方法的应用场景
静态方法:
不需要访问任何实例的属性和方法,通过传入的参数返回数据的功能性方法。仅仅是存在于类中的普通函数,与类和实例没有关系。
类方法:
作为工厂方法创建实例对象。
在本类的方法中调用本类(调用本类的其他类方法或者静态方法)的时候,如果将这个方法定义成类方法,那么可以通过cls调用。如果定义成静态方法,需要显示的在方法中写出类名,对类的后续继承不好。