代码结构: %%manim -v WARNING -ql s1 class s1(Scene): def construct(self): if type('xxp') == str: if type('manim CE') == str: if type('other function') == str: def playscene1(): def p
functions # xxp if type('xxp') == str: # xxp transform def xt(names, *args): def pretrans0(name, i): if type(i) == int: back = name + '[
在python中,@是一个装饰器,针对某个函数,起调用传参的作用。具体怎么用的可以参考如下代码: def A(fn): print("a") fn() def B(): print("b") @A def C(): print("c") 运行结果: a c 可以看到,python从上而下定义了 A B以后,在遇到@时,首先将C定义后,将其作为参
一、基础演示 import unittest class TestClass(unittest.TestCase): @classmethod def setUpClass(cls) -> None: print("类开始方法") @classmethod def tearDownClass(cls) -> None: print("类的后置方法") def setUp(sel
前言 前面一篇讲了setup、teardown可以实现在执行用例前或结束后加入一些操作,但这种都是针对整个脚本全局生效的 如果有以下场景:用例 1 需要先登录,用例 2 不需要登录,用例 3 需要先登录。很显然无法用 setup 和 teardown 来实现了 fixture可以让我们自定义测试用例的前置条件
用例执行状态 用例执行完成后,每条用例都有自己的状态,常见的状态有 passed:测试通过 failed:断言失败 error:用例本身写的质量不行,本身代码报错(譬如:fixture不存在,fixture里面有报错) xfail:预期失败,加了 @pytest.mark.xfail() error的栗子一:参数不存在 def pwd(): prin
import pymysql dbinfo={ "host":"192.16.8.x", "post":3306, "user":"root", "password":"xxxx", "database":"xxx" } import pymysqlclass DBopera: def __init
面向对象 面向对象是一种编程思想, 即按照真实世界的思维方式构建软件系统. 定义类 class 类名[(父类)]: 类体 创建对象 用类创建对象的过程称为实例化, 是将类这个抽象的概念具体到该类实物的过程. class Car: # class Car(object): pass # 类体 car = Car() 类
14、函数对象和闭包 目录: 一 函数对象 1.1 函数可以被引用 1.2 函数可以作为容器类型的元素 1.3 函数可以作为参数传入另外一个函数 1.4 函数的返回值可以是一个函数 二 闭包函数 2.1 闭与包 2.2 闭包的用途 视频链接 一 函数对象 函数对象指的是函数
15、装饰器 目录: 一 装饰器介绍 1.1 为何要用装饰器 1.2 什么是装饰器 二 装饰器的实现 2.1 无参装饰器的实现 2.2 有参装饰器的实现 视频链接 一 装饰器介绍 1.1 为何要用装饰器 软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。
1. 简介 Python中的装饰器是一种可以装饰其它对象的工具。类似于装饰模式,实际是对原有对象进行功能上的增强(原有对象可以是对象、函数、类)。其使用像java 的注解。 该工具本质上是一个可调用的对象(callable),所以装饰器一般可以由函数、类来实现。装饰器本身需要接受一个被
finally关键字的使用 使用finally关键字可以在程序退出时继续执行需要执行的代码 不包含异常退出情况 例子: try: pass except: pass else: pass finally: pass # 此处代码会在程序退出时继续执行完毕 finally关键字的注意事项 如果函数中有finally语句,fin
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
一、超类 1.1 什么时候用到超类? 如果子类需要复用父类的代码(属性、代码)时,需要通过超类实现 class A: class_name = "A" # 类的属性 def __init__(self, name, age): self.name = name # 实例的属性 self.age = age # 实例的属性 def show_me(s
目录8、Fixture带返回值9、Fixture实现参数化10、可靠的Fixture写法(一)一个不可靠Fixture的例子(二)修改成可靠Fixture的例子 8、Fixture带返回值 在fixture中我们可以使用yield或者return来返回我们需要的东西,如测试数据,数据库连接对象,文件对象等。 没有后置处理 直接采用return的
内容概要 函数阶段 语法结构定义调用返回值参数名称空间闭包函数装饰器(难点)递归函数、二分法、匿名函数、三元表达式、列表生成式迭代器、生成器常见内置函数 函数简介 l1 = [11, 22, 33, 44, 55]# 统计列表l1中数据值的个数# print(len(l1)) # 5'''假设len不准用!!! 自
1.背景 背景:我为啥单独写一片这个文章呢?是因为遇到好多次了我必须搞懂它!文章分三部分1.1不带参数的多个装饰器1.2带参数的装饰器1.3带参数的实例,直接拿来用 2不带参数的多个装饰器‘ # 编写装饰器,作为响应以及请求的校验 def request_wrapper(fun): print(f"request_wr
作用域就是一个 Python 程序可以直接访问命名空间的正文区域。 在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。 变量的作用域决定
目录4、Fixture的相互调用5、Fixture复用6、Fixture缓存返回结果7、Fixture的后置处理(一)使用yield关键字实现后置(二)使用addfinalizer关键字实现后置(三)yield和addfinalizer的区别 4、Fixture的相互调用 示例: import pytest # 第一层fixture @pytest.fixture() def fixture_1():
Python3 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。 定义一个函数 你可以定义一个由自己想要功能的函
from functools import wraps import time def func_time(f): @wraps(f) def wrapper(*args, **kwargs): start = time.time() result = f(*args, **kwargs) end = time.time() print(f"\033[1;31;40m{f.__name__} took {(e
优点 可消除if...else Python 面向对象中的反射 通过字符串的形式操作对象的属性,true or false Python 中一切皆为对象,所以只要是对象都可以使用反射 比如:实例对象、类对象、本模块、其他模块,因为他们都能通过 对a.属性 的方式获取、调用 hasattr def hasattr(*args,
变量和注释 1.变量 在编写变量尽量要让其清晰只给,让人清除搞清楚代码的意图 下方两段代码作用完全一样,但第二段代码是不是更容易让人理解 value = s.strip() username = input_string.strip() 1.1变量的基础知识 1.1.1变量的交换 作为一门动态语言,我们不仅可以无需预先声明变
from threading import Thread import os class InputData(object): def read(self): raise NotImplementedError class PathInputData(InputData): def __init__(self, path): super().__init__() self.path = path def read(self)
下面包含了对pyqtSignal的基础使用,包括多参数因为较为简单,就当作参考书吧~~然后信号可以接收多个信号源哦~下面也有举例 (mousePressEvent 和 buttonClicked2) import sys from PyQt5.QtWidgets import QWidget, QPushButton, QApplication, QMainWindow, QHBoxLayout from PyQt5.Qt