04 2021 档案

摘要:参考https://www.cnblogs.com/linhaifeng/articles/6204014.html 1、反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。 2、python面向对象中的反射:通过字符串的形式操作对象相 阅读全文
posted @ 2021-04-05 15:08 cheng4632 阅读(153) 评论(0) 推荐(0) 编辑
摘要:1、普通方法:绑定到对象,没有任何装饰,自动将对象(self)传给函数 2、类方法:用@classmethod装饰的方法,自动将类(cls)作为第一个参数传给函数,对象也可以调用 3、静态方法:用@staticmethod装饰的方法,不会自动传self或cls,就是一个普通的函数,类和对象都可以调用 阅读全文
posted @ 2021-04-05 15:05 cheng4632 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1、通过双下划线设置成私有,但是依然可以访问 class A: __N = 2 #类的数据属性应该就是共享的,但也可以设为私有的,此处变形为_A__N=2 def __init__(self): self.__X = 10 #变形为_A__X=10 def __foo(self): #变形为_A__ 阅读全文
posted @ 2021-04-05 15:02 cheng4632 阅读(77) 评论(0) 推荐(0) 编辑
摘要:1、一类事物有多种形态,比如:动物有多种形态:人、猪、狗,文件有多种形态:文本文件,可执行文件2、不同的对象(形态)接收同一个方法,产生不同的响应 import abc class Animal(metaclass=abc.ABCMeta): # 同一类事物:动物 @abc.abstractmeth 阅读全文
posted @ 2021-04-05 14:50 cheng4632 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1、继承:新建的类(称为子类)可以继承一个或多个父类(称为父类或超类),子类会继承父类的属性,从而解决代码重用问题。 Object类是所有python的基类,它提供了一些常用的方法(如__str__)的实现。 继承的功能: 1、通过继承实现代码重用 2、通过接口实现归一化设计 python3中都是新 阅读全文
posted @ 2021-04-05 14:47 cheng4632 阅读(125) 评论(0) 推荐(0) 编辑
摘要:类也有独立完备的命名空间,同时类支持命名空间的继承实例只有数据属性,没有函数属性,但是可以在类属性中找到函数属性 A.name = 'cc' print(A.name) # 'cc',此时,类还没有实例。其实,类本身也是对象,也可以为其添加自己的属性 a = A() # 实例化对象 print(a. 阅读全文
posted @ 2021-04-05 14:36 cheng4632 阅读(54) 评论(0) 推荐(0) 编辑
摘要:1、类和对象使用简单例子,python中一切皆对象 数据属性是所有对象共享的 函数属性是绑定给对象用的,绑定到对象的函数调用,会自动传值,把self传给函数 class Student: '''hello cc''' def __init__(self, name, age): self.name 阅读全文
posted @ 2021-04-05 14:33 cheng4632 阅读(103) 评论(0) 推荐(0) 编辑
摘要:参考Python开发之路 1、不要简单的认为面向对象就是使用class A ,面向对象是一种编程思想,用函数也可以面向对象编程。 面向过程、面向对象、函数式编程只是不同的编程范式,本身没有好坏之分,看用的人了。Linux的内核就是用C语言写成的,能说差吗? 2、用函数进行面向对象编程例子 类就是一些 阅读全文
posted @ 2021-04-05 14:24 cheng4632 阅读(69) 评论(0) 推荐(0) 编辑
摘要:递归调用是函数嵌套调用的一种特殊形式,函数在调用时,直接或间接调用了自身python解释器的内存管理机制为了防止无限制调用,对递归调用做了最大的层级限制 三个特点: 1、要有确定的结束条件 2、问题规模要一步一步的减小 3、函数的等价关系式 例1、问路 import time person_list 阅读全文
posted @ 2021-04-04 00:32 cheng4632 阅读(86) 评论(0) 推荐(0) 编辑
摘要:一、匿名函数:lambda 一次使用,随时随地定义没有名字,有了名字就失去了意义当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。匿名函数通常被用作高阶函数的参数。比如,filter(),map(),reduce()。 lambda x,y:x+y 二、函数式编程 函数是P 阅读全文
posted @ 2021-04-03 18:14 cheng4632 阅读(100) 评论(0) 推荐(0) 编辑
摘要:1、列表解析:函数式编程工具列表解析是最常应用迭代协议的环境之一列表解析也不是必须的,我们也可以手动循环来完成列表解析的工作,但是,列表解析看起来更加精简,而且,列表解析比手动for循环执行速度更快,因为它们的迭代在解释器内部是以C语言的速度执行的,而不是以手动代码执行的特别是对于较大的数据集合,这 阅读全文
posted @ 2021-04-03 18:13 cheng4632 阅读(93) 评论(0) 推荐(0) 编辑
摘要:生成器(generator)是迭代器()的一种,其本质上就是迭代器分为生成器函数、生成器表达式1、生成器函数只要函数内部含有yield关键字,那么函数名()的结果就是生成器,并且不会执行函数内部代码 例1: def func(): print(' first') yield 1 #相当于return 阅读全文
posted @ 2021-04-03 18:12 cheng4632 阅读(688) 评论(0) 推荐(0) 编辑
摘要:1、可迭代对象(iterable) 可迭代对象都有一个 __iter__() 方法,也就是说有 __iter__() 方法的对象,就是可迭代对象。 'hello'.__iter__ (1,2,3).__iter__ [1,2,3].__iter__ {'a':1}.__iter__ {'a','b' 阅读全文
posted @ 2021-04-03 18:03 cheng4632 阅读(289) 评论(0) 推荐(0) 编辑
摘要:Python允许使用装饰器对函数进行装饰,装饰器可以帮助函数实现一些通用的功能,在函数调用前运行些预备代码或函数调用后执行清理工作。如:插入日志、检测性能(计时)、事务处理、缓存、权限校验等。这样编写函数时就可以专注于功能的实现,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。 定义:装饰器 阅读全文
posted @ 2021-04-03 18:02 cheng4632 阅读(176) 评论(0) 推荐(0) 编辑
摘要:一、闭包 一个能记住嵌套作用域的变量值的函数 又称闭包函数或者闭合函数,其实和前面讲的嵌套函数类似,不同之处在于,闭包中外部函数返回的不是一个具体的值,而是一个函数。一般情况下,返回的函数会赋值给一个变量,这个变量可以在后面被继续执行调用。闭包将内部函数与外部函数连接起来,其实就是一种新的传参方法闭 阅读全文
posted @ 2021-04-03 18:00 cheng4632 阅读(593) 评论(0) 推荐(0) 编辑
摘要:1、函数嵌套 def f1(): def f2(): def f3(): print('cc') f3() f2() f1() 2、作用域 python创建、改变或查找变量名都是在所谓的命名空间中进行的,当我们谈论搜索变量名对应代码的值时,作用域这个术语指的就是命名空间。作用域和定义的时候有关系,和 阅读全文
posted @ 2021-04-03 17:59 cheng4632 阅读(145) 评论(0) 推荐(0) 编辑
摘要:Python中一切皆对象,函数也是1.函数可以被引用,2.可以当作参数传递,3.可以作为返回值,4.可以当作容器的元素 # 函数是一个对象,因此可以作为函数的返回结果 def hello(great, great1): def setName(name): print(great, name, gr 阅读全文
posted @ 2021-04-03 17:58 cheng4632 阅读(71) 评论(0) 推荐(0) 编辑
摘要:1、参数无参、有参、空函数 位置参数、关键字参数(key=value)、默认参数(node=None)、可变长参数(*args,**kwargs) def foo(x, y, *args, **kwargs): #*args,**kwargs接收任意参数 print(x, y, args, kwar 阅读全文
posted @ 2021-04-03 17:57 cheng4632 阅读(78) 评论(0) 推荐(0) 编辑
摘要:函数即变量,定义与调用 函数使用原则,先定义后调用,在定义阶段只检测语法,而代码的逻辑错误要在执行的时候才会知道未定义而直接引用函数,就相当于在引用一个不存在的变量名 例1: # #测试一 def foo(): print('from foo') bar() foo() #报错,bar未定义 # # 阅读全文
posted @ 2021-04-03 17:56 cheng4632 阅读(88) 评论(0) 推荐(0) 编辑
摘要:一、磁盘文件 1.1 打开、关闭磁盘文件 (1)open()函数 文件对象=open(文件名,访问模式='r',缓冲方式='-1') #以'w+'模式打开文件,再写入内容并读出 myfile=open('e:\\firstfile.txt','w+') myfile.write('my firstf 阅读全文
posted @ 2021-04-03 17:55 cheng4632 阅读(88) 评论(0) 推荐(0) 编辑
摘要:格式化输出 (1)%格式化 # 参考 http://c.biancheng.net/view/2177.html# %[(name)[flags][width][.precision]typecode# %s:字符串占位符,可接接收str,也可以接受数字 print('my name is %s, 阅读全文
posted @ 2021-04-03 17:54 cheng4632 阅读(83) 评论(0) 推荐(0) 编辑
摘要:一、发展 ASCII编码(2**8,表示256个字符) >GBK\Shift_JIS......(万国码) >unicode(统一) >utf-8(解决unicode浪费,英文字符用1Bytes表示,中文字符用3Bytes) 可以这么理解:unicode、gbk、gb2312是编码字符集.utf-8 阅读全文
posted @ 2021-04-03 17:53 cheng4632 阅读(204) 评论(0) 推荐(0) 编辑
摘要:还没想好 阅读全文
posted @ 2021-04-03 17:52 cheng4632 阅读(35) 评论(0) 推荐(0) 编辑
摘要:元组,(1,)不可变,任意对象的有序集合不支持任何方法调用(只有两个:index(),count()),但具有列表拥有的大部分属性可以看做对象引用的数组,元组存储指向其他对象的引用,并且对元组进行索引操作的速度相对较快 1、元组创建及简单方法(不支持任何方法调用,只有两个,index()、count 阅读全文
posted @ 2021-04-03 17:50 cheng4632 阅读(55) 评论(0) 推荐(0) 编辑
摘要:唯一的、不可变对象的无序集合,支持与数学集合理论相对应的操作 集合的操作很像一个无值的字典由于集合是无序的,并且不会把键匹配到值,因此,集合既不是序列也不是映射类型,它们是自成一体的类型由于是无序的,因此不支持索引和切片这样的操作集合只能包含不可变(即可散列的)的对象类型,因此,字典和列表不能嵌入到 阅读全文
posted @ 2021-04-03 17:48 cheng4632 阅读(191) 评论(0) 推荐(0) 编辑
摘要:可变、键值对、无序,哈希表 1、定义方式 dict1 = {'name':'cc','age':15,'job':'solider'} dict2 = dict(name='cc',age=15,job='sloler') dict3 = dict([['name','cc'],['age',15] 阅读全文
posted @ 2021-04-03 17:47 cheng4632 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1、可变、有序,顺序表 创建列表 l = [0] * 10 # 即:l=[0 for i in range(10)] 2、sort()与sorted() # 数据类型的成员方法是数据类型特有的,是以数据类型调用的方式使用,会修改原数据 # 内置函数多是通用型的操作,返回值是新的数据,但不会修改原数据 阅读全文
posted @ 2021-04-03 17:46 cheng4632 阅读(64) 评论(0) 推荐(0) 编辑
摘要:单双引号字符串是一样的,三重引号编写多行字符串块用转义序列代表特殊字节:(\n换行、\\反斜杠、\t制表、\r回车、\"双引号)raw字符串抑制转义 1、基本操作 #索引和切片 s = 'abc' print(len(s)) print(s[0:3:2]) # str转换int s = '12' s 阅读全文
posted @ 2021-04-03 17:45 cheng4632 阅读(62) 评论(0) 推荐(0) 编辑
摘要:一、数字 1.1 整型int 查看整型取值范围:sys.maxsize 1.2 长整型 在整型数据的后面加L或l。 1.3 布尔型bool True False 1.4 双精度浮点型float 1.5 十进制浮点型Decimal from decimal import * 1.6 复数Complex 阅读全文
posted @ 2021-04-03 09:43 cheng4632 阅读(50) 评论(0) 推荐(0) 编辑