一、模塊的導入
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)