python基础
dremcl
这个作者很懒,什么都没留下…
展开
-
python-弱引用
如何在环状数据结构中管理内存在python中,垃圾回收器通过引用计数来回收垃圾对象,当一个对象引用计数为0,或者只剩下弱引用时,这个对象会被释放。弱引用1弱引用不增加引用计数,使用弱引用访问对象得到对象引用。【在cmd中输入ipython可以进入python交互环境。】当对象所有的指向全部指向其他地方后,这个方法才会释放内存,del方法才会被触发。a1指向del方法,a1赋值给a2,a2也指向了del方法,当a1指向None后,del方法仍然被引用了,所以无法释放内存。当这个类没有对象引用后,引用原创 2020-08-22 20:54:08 · 565 阅读 · 0 评论 -
python---类比较
类比较数值可以直接进行比较,而集合比较的是包含关系 这两者都可以直接比较,但是对于类来说却不可以直接比较。a = 2b = 1# print(a >1)# print(a.__gt__(b)) # gt --- ># 集合比较的是 包含关系# print({1,2,3} > {4}) # False# print({1,2,3} > {1,2}) # True定义两个类,首先在第一个类中,可以相互比较,但是需要定义比较的方法,类之间也是如此,定义比较的方法。原创 2020-07-11 21:46:03 · 1373 阅读 · 0 评论 -
python-property的使用
property的使用定义一个方法来设置和访问该属性,如下面代码所示,即使赋值为字符串也不会报错,它会直接访问属性,倒是代码的不安全。"""A.get_age() # 访问器A.set_age() # 设置器通过A.age 访问A.age = 20 设置定义类AgeDemo通过访问器访问年龄通过设置器设置年龄年龄不是int类型则主动抛出异常"""# class AgeDemo:# def __init__(self,age):# self.原创 2020-07-11 21:09:41 · 229 阅读 · 0 评论 -
python----上下文管理器
with 语句自定义使用上下文管理器with语句处理对象必须要有__enter__方法及__exit__方法。并且__enter__方法在语句体(with语句包括起来的代码块)执行之前进入运行,__exit__方法在语句执行完毕退出后自动运行。对于with的一些使用:# try:# print("123")# raise KeyError# except KeyError as e:# # print(e)# print("KeyError")# fina原创 2020-07-11 16:09:54 · 127 阅读 · 0 评论 -
python----内存大小及消耗
节省内存当实例运行过多时,会消耗大量的内存,如何去降低这些大量实例的内存开销呢?解决方案:定义了 __slots__属性,声明实例有哪些属性(关闭动态绑定)首先定义两个方法,作为两个实例class player(object): def __init__(self,uid,name, status): self.uid = uid self.name = name self.status = statusclass player2(obje原创 2020-07-11 11:21:25 · 810 阅读 · 0 评论 -
python---自定义内置方法
派生内置定义一个新类型的元组,对于传入的可迭代对象,我们只保留int类型且值大于0的元素。python中有内置的元组类型,tuple类型。自己也可以自定义一个方法类型,class IntTuple(tuple):# # 重写父类的构造方法# def __init__(self,iterable):# # iterable里面的元素 为整数且>0的值# for i in iterable:# if isinstan原创 2020-07-11 10:31:25 · 706 阅读 · 0 评论 -
python---对象自省工具与super
python对象自省机制自省是通过一定的机制查询到对象的内部结构;较为常减的函数用法有:dir(),type(),hasattr(),isinstance()。通过这些函数,我们能够在程序运行时得知对象的类型,判断对象是否存在某个属性,访问对象的属性。class Person(object): name = "happy"class Student(Person): def __init__(self,h_name): self.h_name = h_nameg原创 2020-07-04 16:26:01 · 117 阅读 · 0 评论 -
python---类属性和实例属性
type 与 isinstance在python中,type代表着类型,而isinstance则是为是否关系;二者在应用中都有很大的空间。type 不考虑 继承关系isinstance 考虑继承关系# class Father(object):# # def dele(self):# # raise NotImplementedError# ## # def crea(self):# # raise NotImplementedError原创 2020-07-04 15:56:53 · 228 阅读 · 0 评论 -
python-浅语言
鸭子类型与多态鸭子类型对于像Java和C#的强类语言多应用与多态的概念,而python却属于鸭子类型。鸭子类型指的就是在调用实例化方法时,不检查类型,只要你方法存在,参数正确,就可以运行该方法。属于动态语言;它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走路也想鸭子。”那么这就可以看成是鸭子类型。多态指的是定义的和运行的类型不一样,那么就可以被成为多态。如下面的代码所示,只要这个extend的方法存在,参数正确,它并不分析类型是否正确,在最底层都会处理,然后正确输出结果。a = [1,原创 2020-07-04 11:51:48 · 146 阅读 · 0 评论