python基础学习(一)

一、模块的导入

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)





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章