- 博客(5)
- 收藏
- 关注
原创 python 调试和性能分析
代码调试代码调试的最简单的一个方法就是利用print()函数观察哪个地方打印出现问题,但这只适用于小型程序。因为你每次都得重新运行整个程序,或是一个完整的功能模块,才能看到打印出来的变量值。而在其他情况下,我们可以使用如下几种方法1、断点调试在使用pycharm等编译器是,可以设置一个断点,然后再一行一行的运行来查找出问题所在2、使用pdb调试pdb调试也十分的简单,在代码中加入imp...
2019-12-30 23:08:28 589
原创 Python 垃圾回收机制
Python 中一切皆对象。因此,你所看到的一切变量,本质上都是对象的一个指针。那么,怎么知道一个对象,是否永远都不能被调用了呢?就是当这个对象的引用计数(指针数)为 0 的时候,说明这个对象永不可达,自然它也就成为了垃圾,需要被回收。import osimport psutil# 显示当前 python 程序占用的内存大小def show_memory_info(hint): ...
2019-12-30 22:43:58 134
原创 类与对象深度问题与解决技巧(2)
4.如何创建可管理的对象属性在面向对象编程中,我们把方法看做对象的接口。直接访问对象的属性可能是不安全的,或设计上不够灵活,但是使用调用方法在形式上不如访问属性简洁。class A: def __init__(self, age): self.age = age def get_age(self): return self.age d...
2019-12-28 00:16:10 185
原创 类与对象深度问题与解决技巧(1)
1.如何派生内置不可变类型并修改其实例化行为比如我们想定义一个IntTuple类,表示接受参数后,只取其中int类型,且大于0的,然后存为tuple类型首先我们想到继承父类Tuple,然后修改一下:class IntTuple(tuple): def __init__(self,iterable): for i in iterable: if isinstance(i,int) ...
2019-12-27 23:46:44 1416
原创 python深入类和对象
鸭子类型和多态列表的extend方法:a = [1,2]b = [3,4]c = (5,6)d = {7,8}a.extend(b)print(a)a.extend(c)print(a)a.extend(d)print(a)上述代码输出的是[1,2,3,4][1,2,3,4,5,6][1.2.3.4.5.6.7.8]extend方法添加的可以是list,tuple...
2019-12-25 23:27:14 226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人