python学习笔记
文章平均质量分 93
卡塞尔学院临时校长
盖士人读书,第一要有志,第二要有识,第三要有恒
展开
-
68个python内置函数总结
python内置函数总结只是学习记录原作者:pypypypy原文章在这里abs() dict() help() min() setattr()all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii()转载 2021-08-31 12:24:45 · 162 阅读 · 0 评论 -
python函数参数中的冒号与箭头
python函数参数中的冒号和箭头官方解释:type hints 文档函数参数中的冒号是参数的类型建议符,即希望传入的实参类型。函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。类型建议符并非强制规定和检查,也就是说即使传入的实际参数与建议参数不符,也不会报错。有了说明符,可以方便程序员理解函数的输入与输出(具体涉及到的工作,比如静态分析与代码重构)。举个例子def twoSum(a: int, b: int=1) -> int: sum = a + b原创 2020-09-22 08:37:29 · 707 阅读 · 0 评论 -
Python中的变量和垃圾回收机制
文章目录1、python中的变量2、==和is的区别3、del语句和垃圾回收机制4、关于传入列表的一下注意事项1、python中的变量python和java中的变量本质不一样。java中声明变量时要指定变量的数据类型,int、str或某一类,之后虚拟机就会在内存中申请一块空间,空间的大小跟类型相关。通俗的理解就是把变量想象成一个盒子,盒子里能装什么东西,一开始就设定了。比如a=1就是将1放到盒子里面。python的变量实质是一个指针,指针的大小都是一样的。比如一个指向int类型的指针,指针本身大小原创 2020-06-30 12:27:55 · 371 阅读 · 0 评论 -
Python中的set和dict学习笔记
文章目录1、map类型2、dict中的常用方法(只说几个蛮重要的)3、dict的子类(UserDict和Defaultdict)4、set和frozenset1、map类型dict就是一种map类型。先看个例子a={}print(isinstance(a,MutableMapping)) #True# print(isinstance(dict,MutableMapping)) # False 因为isinstance判断的是实例的类型补充:字典类型a实际上并不是去继承MutableMapp原创 2020-06-29 20:18:29 · 171 阅读 · 0 评论 -
python中的列表生成式、生成器和字典推导式
1、列表生成式举一个简单的例子,输出1-20之间的奇数。一般做法my_list = []for i in range(21): if i % 2 == 1: my_list.append(i)print(my_list)# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]列表生成式print([i for i in range(21) if i % 2 == 1])# [1, 3, 5, 7, 9, 11, 13, 15, 17,原创 2020-06-27 10:38:14 · 185 阅读 · 0 评论 -
bisect模块的作用
1、bisect是用来处理已排序的序列 ,即用来维持已排序的升序序列。在源码的bisect.py文件中,它的structure是:insort,bisect,insort_right,insort_left,bisect_right,bisect_left。大致就是实现插入操作和查找操作(用的二分)。import bisect#二分查找inter_list = []bisect.insort(inter_list, 3)bisect.insort(inter_list, 2)bisect.in原创 2020-06-27 09:49:39 · 190 阅读 · 0 评论 -
python中序列对象的+、+=以及extend、append各自的区别
序列对象——+和+=、extend和append1、+和+=在序列操作中的区别a = [1,2]c = a + [3,4]print(c) # [1,2,3,4]# += 可以想成是就地加a += [3,4]print(a) # [1,2,3,4]a = [1,2]c = a + (3,4)print(c) # TypeError : can only concatenate list (not "tuple") to lista += (3,4)print(a) # [1,原创 2020-06-26 20:30:19 · 315 阅读 · 0 评论 -
Python中的contextlib模块
1、前言我之前在这篇博客里说到了如何定义一个上下文管理器协议(with语句),今天要说一个更简单的定义方式。python提供了一个内置的模块contextlib,该模块有一个装饰器@contextlib.contextmanager,可以将函数变为上下文管理器。import contextlib@contextlib.contextmanagerdef file_open(file_name): #此处只是模拟并没有真的打开一个文件 print("file open") yield {} #原创 2020-06-25 09:31:00 · 866 阅读 · 0 评论 -
python中的try、except、finally、with(enter和exit)
python中的with的使用——一个非常好用的特性一、try、except、finally使用def exe_try(): try: print("code started") raise KeyError #抛出异常 return except KeyError as e: #捕获异常 print("key error") return 2 else: print("other原创 2020-06-23 20:39:36 · 625 阅读 · 0 评论 -
Python的鸭子类型和多态
Python的鸭子类型和多态一、鸭子类型当你看见一只鸟走起来像鸭子,游起泳来像鸭子,叫起来也像鸭子,那么这只鸟就可以被称为鸭子class Cat(object): def say(self): print("i am a cat")class Dog(object): def say(self): print("i am a dog") class Duck(object): def say(self): p原创 2020-06-23 13:56:26 · 232 阅读 · 0 评论 -
Python中的自省机制(__dict__和dir)
自省机制一、定义自省就是通过一定的机制查询到对象的内部结构class Person: """ """ name="User"class Student(Person): def __init__(self,school_name): self.school_name = school_nameif __name__ = "__main__": user = Student("小明") #通过__dict__查询属性 pr原创 2020-06-23 10:38:31 · 146 阅读 · 0 评论 -
Python中的数据封装和私有属性
数据封装和私有属性像java中一般用private和protected来实现类中的私有方法和受保护的方法。我已经在chapter04文件夹内写好了一个class_method.py文件,文件中定义了一个Date类。具体的Date类参见这篇博客然后我们导入Date类from chapter04.class_method import Dateclass User: def __init__(self): self.brithday = birthday def g原创 2020-06-23 09:41:22 · 188 阅读 · 0 评论 -
Python中的类属性、实例属性和查找顺序(C3算法)
Python中的类属性、实例属性、查找顺序(mro查找)一、类属性和实例属性属性是定义在类内部的一些变量或方法直接上例子class A: name = 'A' def __init__(self): self.name = 'obj'a = A()print(a.name) # objclass A: name = 'A' def __init__(self): passa = A()print(a.name) # A原创 2020-06-22 22:52:45 · 586 阅读 · 1 评论 -
Python中的类方法、静态方法和实例方法
类方法、静态方法和实例方法一、实例方法先定义一个输出日期的类Date,后面内容都是基于此类进行拓展。class Date: def __init__(self,year,month,day): self.year=year self.month=month self.day=day def __str__(self): return "{year}/{month}/{day}".format(year=self.year,mon原创 2020-06-22 22:51:29 · 149 阅读 · 0 评论 -
super函数的使用方法
文章目录一、前言(所有内容都基于最开始的代码)二、既然重写对象B的构造函数,那为什么还要去调用super?三、super函数的执行顺序是什么样的?一、前言(所有内容都基于最开始的代码)class A: def __init__(self): print('A')class B(A): def __init__(self): print('B')if __main__ == '__main__': b = B() # B但在某些情原创 2020-06-22 19:57:50 · 377 阅读 · 0 评论 -
Python中的类变量和实例变量
Python中的类变量和实例变量一、话不多先上代码class A: aa = 1 def __init__(self,x,y): self.x = x self.y = ya = A(2,3)print(a.x, a.y, a.aa) # 2,3,1print(A.aa) # 1print(A.x) # AttributeError:type object ‘A’ has no attribute ‘x’其中aa就是一个类变量。类中先初始化__原创 2020-06-21 18:22:34 · 218 阅读 · 0 评论 -
Python中isinstance和type的区别
isinstance和type的区别一、先来看一段代码(以下内容都是基于此代码进行展开)class A: passclass B(A): passb = B()print(isinstance(b,B)) #Trueprint(isinstance(b,A)) # True在调用isinstance方法时,会根据继承关系,自动找到一个继承链,而实例化的对象b本身肯定是一个B类型的对象,而对象B(类)又继承了对象A(类),所以对象b又是一个A类型的对象。二、对于type函数原创 2020-06-21 17:58:02 · 281 阅读 · 0 评论 -
Python类和对象学习笔记——抽象基类
4.2_抽象基类(abc模块 )参考博客一、前言 (废话,可以不看)抽象基类就好比java中的接口,在java中它是魔法实现多继承的,也就是只能继承一个类,但可以继承多个接口,且接口是不能用来实例化的。在python中抽象基类也是不能实例化的。python是动态语言,定义变量时不用声明变量类型。变量只是一个符号,可以指向任何类型的对象。我们可以复制任何一个类型的数据给python中的任何一个变量,且可以修改。不用向java那样去实现一个多态,因为python本身就是一个支持多态的语言。动态语言和原创 2020-06-19 22:03:32 · 210 阅读 · 0 评论