一、模块的导入
import moduleName
模块重新导入reload( name )
注:避免循环导入(在a中导入b并且直接调用,在b中导入a直接调用相关方法)
二、== 和 is 区别
1、== 对于值相同的两个变量适用
2、is对于共用地址变量指的是两个变量指的地址是否相同(引用比较)
三、深拷贝和浅拷贝
概念:
深拷贝:拷贝地址指向的数值,是对对象所有层次的拷贝
浅拷贝:拷贝地址指向的是同一个数值 , 是对对象的顶层拷贝
深拷贝实现:
import copy
a = 100
b = copy.deepcopy(a)
浅拷贝实现:
import copy
a = 200
b = copy.copy(a)
四、property私用属性使用
对于私有属性一般通过对象无法访问所以多采用方法操作:getter 或 setter 例如
class Person:
def __init__(self):
self.__name = "xiaohong"
def getName(self):
return self.__name
def setName(self,new):
self.__name = new
调用:
person = Person()
person.getName()
person.setName(new)
通过使用property可以简化为
class Person:
def __init__(self):
self.__name = "xiaohong"
def getName(self):
return self.__name
def setName(self,new):
self.__name = new
name = property(getName,setName)
调用:
person = Person()
print person.name
person.name = 10
进一步使用python语法糖简化
class Person:
def __init__(self):
self.__name = "xiaohong"
@property
def getName(self):
return self.__name
@property.setter
def setName(self,new):
self.__name = new
name = property(getName,setName)