# 一、用函数修饰函数 #!/usr/bin/python3 def decorate_func(func): def call(*args, **kwargs): print('you have called %s()' % (func.__name__)) func(*args, **kwargs) return call @decorate_func def func(name): print('I am no
函数式编程 高阶函数 map() map接受一个函数和一个可迭代对象(Iterable),返回一个map对象(Iterator) def f(x): return x*x list(map(f, [1,2,3])) #1,4,9 reduce() reduce接受一个函数(这个函数只能接受两个参数)和一个可迭代对象(Iterable),结果如下: reduce(f, [x1, x2, x3, x4]
目录1. 派生1.1 定义1.2 派生方法的实战演练1.2.1 推导 时间模块与json模块1.2.2 解决方式1 转换数据类型1.2.3 解决方式2 利用派生方法2. 面向对象三大特征之封装2.1 定义2.2 特征2.3 代码实例3. property伪装属性3.1 理解3.2 扩展 体质指数(BMI)=体重(kg)÷身高^2(m)3.3 代码实例4. 面
一、派生方法实战演练(重要) import datetime import json d = { 't1': datetime.datetime.today(), 't2': datetime.date.today() } res = json.dumps(d) print(res) 上述代码报错,无法正常序列化,这是因为json序列化python数据类型是有限制的,不是所有类型都可以 即将被序
Python的WEB框架 Bottle Bottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块。 1 2 3 4 pip install bottle easy_install bottle apt-get install python-bottle wget http://bottlepy.org/bottl
在阅读TVM源码时,发现了*.pyi文件,里面的函数没有具体的实现,都诸如如下的形式,感到很疑惑。 @overload def getattr(__o: object, __name: str, __default: _T) -> Any | _T: ... def globals() -> dict[str, Any]: ... def hasattr(__obj: object, __name: str) -> bool: ... def ha
对象的独有功能 # 上一篇我们学习了对象的独有数据,现在讲讲对象的独有功能/也称方法 class Person: school = '蓝翔挖掘机炒菜学校' def __init__(self, name): # 让对象拥有独有数据的函数一般建议写在公共方法上面 self.name = name # 让对象拥有独有
一、pytest安装 插件安装:pip install -r xx.txt pytestpytest-htmlpytest-xdistpytest-orderingpytest-rerunfailurespytest-base-urlallure-pytest 二、pytest默认规则 1、模块名必须以test_或_test开头 2、测试类必须以Test开头,不能有init方法 3、测试方法必须以test_开
1 前置知识点: for i in range(100) 循环结束够会留下一个变量 i = 99 自由变量 free vars:non-local 如果函数中有对变量赋值的操作,并且没有声明全局变量,那么解释器会默认它是局部变量。 例如: # part1 i = 1 def func1(): print(i) func1() # part2 def func2(): # globa
抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类
问题 有个小问题就是有的时候五个棋子相连却不能判断出来 还有就是黑棋/白棋胜利的字体不能显示出来 游戏的音乐是一个类可以单独考虑,不需要对音乐过度纠结 已经完成的 窗口上画出了棋盘 黑棋下一步,白棋下一步 若横竖斜五子则某方胜利,重开游戏 还需要弄的 实现socket联机 能设置棋
面向对象编程:oop【object oriented programming】是一种python的编程思路,关注设计思维,关注点:怎么做 面向过程:按照解决问题的步骤去写代码在思考问题时,首先分析‘怎么按照步骤去实现’,然后将问题解决拆解若干个步骤,并将这些步骤对应成方法一步一步的最终完成 关注点:谁来做 类:是具
Python编写的事件驱动的网络引擎 twisted.web: HTTP 客户端和服务器, HTML 模板, 和一个 WSGI 服务器 twisted.conch: SSHv2 和 Telnet 客户端和服务器,以及一个终端模拟器 twisted.words: IRC, XMPP客户端和服务器, 以及其他 IM(Instant Message) 协议 twisted.mail: IMAPv4, POP3,
前言 酷狗、网抑云和 QQ 音乐都有桌面歌词功能,这篇博客也将使用 pyqt 实现桌面歌词功能,效果如下图所示: 代码实现 桌面歌词部件 LyricWidget 在 paintEvent 中绘制歌词。我们可以直接使用 QPainter.drawText 来绘制文本,但是通过这种方式无法对歌词进行描边。所以这里更换为 QPaint
1、每日温度 关键:需要返回与原数组等长的数组结果而且双层循环会超时,采用栈结构(存储下标计算天数),用第一个元素的下标初始化栈,构造一个和原数组等长的全0数组表示初始天数,之后遍历原温度数组并更新栈顶元素(若当前温度较高则弹出栈顶元素并计算,将当前元素下标入栈,否则直接将当前
10.1面向对象思想 面向过程: 核心是“过程”二字 过程的终极奥义就是将程序流程化 过程就是“流水线”,分步骤来解决问题 面向对象: 核心是“对象”二字 对象的终极奥义就是将程序整合 对象是“容器”,用来盛放数据与功能的程序=数据+功能 一种数据和功能整合起来就是面向对象思想
两种方法: 1,使用python自带列表去重函数set() class Test_repeat(): def setup(self): self.data=[1,2,3,4,1,5,6,3,1,7,7,7,7] self.data_expect=[1, 2, 3, 4, 5, 6, 7] def data_repeat(self,data:list): data=set(data) return list(data)
报错: Auto configuration failed 139868431284128:error:0E079065:configuration file routines:DEF_LOAD_BIO:missing equal sign:conf_def.c:362:line 39 openssl 版本不适配openresty的版本,openresty升级后解决
编程思想 面向过程 面向对象 区别 事物比较简单,可以用线性思维解决 事物比较复杂,使用简单的线性思维无法解决 共同点 面向过程和面向对象都是解决实际问题的一种思维方式 二者相辅相成,并不是独立的 解决复杂问题,通过面向对象方式便于我们从宏观
一、计算思维 利用计算机求解问题的思维——计算思维 三种基本的思维特征 思维种类 特征 代表 实证思维 实验和验证 物理学科 逻辑思维 推理和演绎 数学学科 计算思维 设计和构造 计算机学科 二、程序设计方法论 A:自顶向下 #该python程序命名为:main(Matc
函数 函数就是执行特定任何以完成特定功能的一段代码 为什么需要函数 复用代码 隐藏实现细节 提高可维护性 提高可读性便于调试 函数的创建和调用 def 函数名([输入参数]): # 函数名需要遵循标识符命名规范 函数体 [return xxx] # ----
装饰器作用 下面为两个函数增加检查登录功能的代码,方法1需要每个函数下方都添加过于繁琐,方法2调用方式改变,在项目时不希望改变已成功实现的代码(因为可能是借鉴来的不敢修改,不想改变代码的调用方式, 想要解决此类问题可以使用装饰器,装饰器提供了高效,简洁的实现方法 # 方法1 添加检查
记得我是数学系的,大二时候因为参加数学建模,学习Python爬虫,去图书馆借了一本Python基础书,不厚,因为有matlab和C语言基础,这本书一个星期看完了,学完后感觉Python入门很快,然后要开始学爬虫和矩阵计算,学习一下对应的包就行了,感觉很方便,爱上了这门语言,虽然毕业后做了Java,但是平时工作中
目录01. 装饰器的作用02.装饰器的函数基础02-1 函数赋值给变量02-2函数作为参数传递02-3函数的嵌套02-4函数的作用域03.函数定义装饰器03-1 函数装饰器的作用03-2函数作为装饰器-装饰函数03-3函数作为装饰器-装饰类方法04.定义类作为装饰器04-1 类作为装饰器-装饰函数04-2 类装饰
如何为创建大量实例节省内存: 定义类的__slots__ 它声明实例属性名字的列表,减少内存开销 #定义两个类: 查看占用内存大小 class player1(): def __init__(self,uid,name,status=0,level=1): self.uid = uid self.name = name self.status = status