python 高级编程①

1 ‘==’ 与‘is ’的使用

① ‘==’判断两个对象内容是否相等

‘is’判断两个对象的地址是否相等


②在python中,有一个小整数常量池,在[-5, 257)中,里面的整数相当于都是初始化好的,不同的变量使用里面相同的整数,地址是相同的。



当超出[-5, 257)范围,每次使用整数需要重新创建,地址也就不相同。



③在python中有一个字符串常量池,每次创建的新的字符串都会存入这个常量池,当下次再使用相同的字符串只需要从常量池中调用,因此相同字符串的地址相同(不包括特殊情况)

创建列表和元组时,每次都开辟新空间,所以即使内容相等,地址也不相等


 2.深拷贝与浅拷贝

①  copy 模块:

    copy.deepcopy  深拷贝

     copy.copy 当拷贝的对象是列表(深),对里面的对象(浅)

      当拷贝的对象是元组(浅),对于里面的对象(浅)

②  

a=b

浅拷贝

③测试

测试一

text.01 当使用‘=’时为浅拷贝
text.01 当使用‘=’时为浅拷贝

测试二

deepcopy 深拷贝

text。02深拷贝


测试三

copy列表

测试四

copy 元组


3.其他拷贝方式

①分片表达式可以赋值一个序列

a='123'

b=split[:]

②字典的copy方法可以拷贝一个字典

d = dict(name="zhangsan", age=27)

co = d.copy()

③·有些内置函数可以生成拷贝(list)

a = list(range(10))

b = list(a)

4.属性 property

私有属性添加setter和getter的方法

①方法一

使用 set 和 get 函数,在类里面通过函数修改私有属性

②方法二

为了简化方法一

创建一个类属性 (假设名字为money),令属性等于property(set,get)

调用时 直接用 对象名.money即可直接使用set和get里面的内容


③方法三

此方法与方法二使用时一样的

@注解,get,set方法名字保持一致xx,在当时的get方法头部加 @property,在原来的set方法头部加@xx.setter


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.元类 1.1.1类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这...
    TENG书阅读 1,348评论 0 3
  • 1.1==,is的使用 ·is是比较两个引用是否指向了同一个对象(引用比较)。 ·==是比较两个对象是否相等。 1...
    TENG书阅读 758评论 0 0
  • 一元类 1类也是对象 在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成...
    五行缺觉阅读 1,101评论 0 1
  • 1.1==,is的使用 总结 ·is是比较两个引用是否指向了同一个对象(引用比较)。 ·==是比较两个对象是否相等...
    PythonMaO阅读 763评论 0 3
  • 断断续续看了一两个月,终于把《牛虻》看完了。这本书应该是中学生必看书目吧,我却一直没有有想看的欲望。大学时曾想...
    zxt果宝特攻阅读 426评论 0 0