def

Python classmethod()

浪子不回头ぞ 提交于 2021-02-15 07:35:05
The classmethod() method returns a class method for the given function. classmethod()方法返回给定函数的类方法。 The syntax of classmethod() method is: classmethod(function)    classmethod() is considered un-Pythonic so in newer Python versions, you can use the @classmethod decorator for classmethod definition. classmethod()被认为是非Pythonic,因此在较新的Python版本中,您可以使用@classmethod装饰器进行classmethod定义。 The syntax is: @classmethod def func(cls, args...) classmethod() Parameters: The classmethod() method takes a single parameter: classmethod()方法采用单个参数: function - Function that needs to be converted into a class method

[Micropython]TPYBoard v202 智能WIFI远控小车

十年热恋 提交于 2021-02-15 05:56:31
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 ---------------------- 之前有过用TPYBoard v102制作的各种各样功能的智能小车,比如自动寻迹、自动避障、手机蓝牙遥控等。想着还缺个WIFI控制的,那就用TPYBoard v202做一个吧。 设计思路 ------------------------- WIFI是目前最有广泛运用的一项无线网络传输技术,覆盖范围广,可远程。本次实现了远程WIFI控制,不仅可以在家里操作,还可以接入一些云平台,实现远程操控。具体思路如下: 1、TPYBoard v202作为整个小车的核心控制部分,连接L298N电机驱动模块,实现小车的基本方向控制; 2、TPYBoard v202接入网络,开启Socket服务实现web服务器功能; 3、手机接入同一局域网,可通过浏览器访问控制页面,进行小车控制。 所需器件 --------------------------------- - TPYBoard v202开发板 1块 - USB数据线(MicroUSB) 1条 - L298N电机驱动模块 1个 - 小车套件包(底板、电机等) 1个 - 18650电池 2节 - 18650电池盒 1个 程序源码 --------------

django进阶

≡放荡痞女 提交于 2021-02-14 23:17:16
Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 import MySQLdb def GetList(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.execute(sql) data = cursor.fetchall() db.close() return data def GetSingle(sql): db = MySQLdb.connect(user='root', db='wupeiqidb', passwd='1234', host='localhost') cursor = db.cursor() cursor.execute(sql) data = cursor.fetchone() db.close() return data    django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM)。   PHP:activerecord   Java:Hibernate

第七篇 Django-认证系统

被刻印的时光 ゝ 提交于 2021-02-14 22:00:59
Django-认证系统 阅读目录(Content) 1 Cookie 与 Session 概念 查看cookie 登陆应用 Django中操作Cookie 1.获取Cookie 2.设置Cookie 3.删除Cookie              Django中操作Session 1、 基本操作 2、 流程解析图 3、Django中的Session配置 4、CBV中加装饰器相关    Cookie 与 Session 概念 Cookie不属于http协议的范围,由于http协议无法保持状态,但实际情况,我们却又需要‘保持状态’,因此Cookie就是这样一个场景下诞生。 Cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了。 Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它支持更多字节,并且他保存在服务器,有较高的安全性。这就是session 问题来了,基于http协议的无状态特征,服务器根本就不知道访问者是“谁”。那么上述cookie就起到桥接的作用 我们可以给每个客户端的cookie分配一个唯一的id,这样用户在访问的时候

[LeetCode] Backtracking Template for (Subsets, Permutations, and Combination Sum)

大兔子大兔子 提交于 2021-02-14 21:04:28
根据 issac3 用Java总结了backtracking template, 我用他的方法改成了Python. 以下为template. 1 def backtrack(ans, temp, nums, start): # 可能有start, 也可能没有 2 if len(temp) == len(nums): 3 ans.append(temp) 4 else : 5 for i in range(start, len(nums)): 6 if nums[i] not in temp: 7 backtrack(ans, temp + [nums[i]], nums, i + 1) # 如果可以重复利用同一个元素,那么 用 i 8 9 ans = [] 10 nums.sort() # 可能需要sort 11 backtrack(ans, [], nums, 0) 12 return ans 可以用来解决的问题有: Leetcode 78. Subsets , Leetcode 90. Subsets II, Leetcode 46. Permutations, Leetcode 47. Permutations II(contains duplicates), Leetcode 39. Combination Sum, Leetcode 40. Combination Sum

selenium+python自动化测试--读取配置文件(.ini)

主宰稳场 提交于 2021-02-14 18:05:31
前言:今天为什么要整理读取配置文件呢?原因是:公司正在做的项目,操作页面时都是根据路由跳转,由于自己经验尚浅,将url地址写在每个用例中,导致每次开发一更改路由,我就要去每个页面中修改url地址,光来来回回找页面就很费时间,所以就想到了用配置文件,将所有url地址放在一个文件中,页面用到哪个时读取哪个。 一、基础了解 ini ini配置文件格式如下: ;这里是注释 [section0] key0 = value0 key1 = value1 [section1] key2 = value2 key3 = value3 section不能重复,里面数据通过section去查找,每个seletion下可以有多个key和vlaue的键值对,注释用英文分号(;) configparser 通过python3里面自带configparser模块来读取ini文件。 # python3 import configParser 如果注释里面有中文的话,这里代码跟python2是有点区别的,python2里面直接conf.read(cfgpath)就可以了,python3需要加个参数:encoding="utf-8" conf.read(cfgpath, encoding= " utf-8 " ) 二、代码编写 分别在common文件夹下新建配置文件:config.ini 和 读取配置文件

selenium+python自动化测试--读取excel数据

假装没事ソ 提交于 2021-02-14 17:51:12
1、excel中数据(注意:数据是纯数字时,要将其设置成文本) 2、读取excel文件函数封装 文件名称:read_excel.py import xlrd class ReadExcel(): def __init__ (self, excelPath, sheetName= " Sheet1 " ): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) # 获取第一行作为key值 self.keys = self.table.row_values(0) # 获取总行数 self.rowNum = self.table.nrows # 获取总列数 self.colNum = self.table.ncols def dict_data(self): if self.rowNum <= 1 : print ( " 总行数小于1 " ) else : r = [] j =1 for i in range(self.rowNum-1 ): s = {} # 从第二行取对应values值 values = self.table.row_values(j) for x in range(self.colNum): s[self.keys[x]] = values

python 多线程, 多进程, 协程

不打扰是莪最后的温柔 提交于 2021-02-14 14:31:10
1. 介绍: threading 用于提供线程相关的操作,线程是应用程序中工作的最小单元。python当前版本的多线程库没有实现优先级、线程组,线程也不能被停止、暂停、恢复、中断。 2. 1 线程执行函数 # !/bin/python # coding:utf8 import threading import time def action(arg): time.sleep( 1 ) print " this ia arg %s \n " % arg thread_list = [] for i in xrange(4 ): t = threading.Thread(target=action,args= (i,)) t.start() thread_list.append(t) for t in thread_list: t.join() print ' main end ' # coding:utf-8 import threading import time gl_num = 0 lock = threading.RLock() # 调用acquire([timeout])时,线程将一直阻塞, # 直到获得锁定或者直到timeout秒后(timeout参数可选)。 # 返回是否获得锁。 def Func(): lock.acquire() global gl_num gl

Python|动态规划解接雨水问题

萝らか妹 提交于 2021-02-14 14:12:21
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。 问题描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水? 图 1.1 问题示意图 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 解决方案 首先来理解题意, 3能接到水是因为左边最高高度是1 右边最高高度是 3原本高度是零,可以得到在3 的位置能接到水的量是左右最高中最小的减去原本的,然后把所有能接到的水合起来就是答案。 1. 普通代码(暴力遍历但超时) def trap(height): ans = 0 for i in range(len(height)): max_left, max_right = 0, 0 # 寻找 max_left for j in range(0, i): max_left = max(max_left, height[j]) # 寻找 max_right for j in range(i, len(height)): max_right = max(max_right, height[j]) if min(max_left, max_right) > height[i]: ans +=

pytest之mark的使用

坚强是说给别人听的谎言 提交于 2021-02-14 12:58:58
使用方法: 1、注册标签名 2、在测试用例/测试类前面加上:@pytest.mark.标签名 打标记范围:测试用例、测试类、模块文件 注册方式: 1、单个标签: 在conftest.py添加如下代码: def pytest_configure(config): # demo是标签名 config.addinivalue_line( " markers " , " demo:示例运行 " ) 2、多个标签: 在conftest.py添加如下代码: def pytest_configure(config): marker_list = [ " testdemo " , " demo " , " smoke " ] # 标签名集合 for markers in marker_list: config.addinivalue_line( " markers " , markers) 3、添加pytest.ini 配置文件(在你项目的任意一个文件下,新建一个file,文件命名为pytest.ini) [pytest] markers = smoke:this is a smoke tag demo:demo testdemo:testdemo 使用方法: import pytest @pytest.mark.testdemo def test_demo01(): print ( "