python高级编程技巧练习

如何区别可变数据类型和不可变数据类型?
python的数据类型中int, str ,tuple是不可变数据类型
list,dict,set 是可变数据类型
那我们应该怎么样去区分是否可变呢?
可变就是在id地址不变的情况下值可以变,但是不可变的数据类型如果值变了,它的id指向会跟着变,指向一个新的id地址
例子:
不可变数据类型

num = 11
print(id(num))
num += 11
print(id(num))
"""
1602383184
1602383536

可变数据类型

lis = [11]
print(id(lis))
lis += [12]
print(id(lis))
"""
1352263411208
1352263411208

Python 垃圾回收机制?
引用计数:如果一个变量的引用计数为0 ,则会被python自动回收
循环引用:引用计数永远不会等于0

import sys

a = []
print(sys.getrefcount(a))  


def func(a):
    print(sys.getrefcount(a))


func(a)

print(sys.getrefcount(a))

Python 中会有函数或成员变量包含单下划线前缀和结尾,和双下划线前
缀结尾,区别是什么?
如何判断一个对象是函数还是方法?
super函数的用法
使用isinstance和type的区别
创建大量实例节省内存
上下管理器
判断一个对象中是否具有某个属性
property动态属性的使用
如何使用type创建自定义类
生成器的创建
TCP 和 UDP 的区别?
TCP服务端通信流程
创建线程的两种方式
解释线程资源竞争,以及解决方案
死锁出现的原因
进程之间的通信,以及进程池中的进程通信

同步、异步、阻塞、非阻塞
进程、线程、协程对比
描述Python GIL的概念,以及它对Python多线程的影响

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值