def

Python3 面向对象

99封情书 提交于 2021-02-14 11:57:40
面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员: 类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 实例变量: 定义在方法中的变量,只作用于当前实例的类。 继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化: 创建一个类的实例,类的具体对象。 方法: 类中定义的函数。 对象: 通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。 Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。

python 面向对象

不羁的心 提交于 2021-02-14 11:31:04
Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。 如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。 类变量: 类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。 数据成员: 类变量或者实例变量用于处理类及其实例对象的相关的数据。 方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。 实例变量: 定义在方法中的变量,只作用于当前实例的类。 继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。 实例化: 创建一个类的实例,类的具体对象。 方法: 类中定义的函数。 对象: 通过类定义的数据结构实例

10. 前方高能-函数的进阶

做~自己de王妃 提交于 2021-02-14 11:15:32
本节主要内容: 1.函数参数—动态传参 2.名称空间,局部名称空间,全局名称空间,作用域,加载顺序 3.函数的嵌套 4.gloabal,nonlocal关键字 一.函数参数—动态传参 之前我们说过了传参,如果我们需要一个函数传参,而参数又不确实的,或者我给一个函数传很多参数,我的形参就要写很多,很麻烦,那怎么办呢,我们可以考虑使用动态参数。 形参的第三种:动态参数 动态参数分为两种: 1.动态接受为止参数 首先我们先回顾一下为止参数,位置参数,按照位置进行传参 def chi(quality_food,junk_food): print ( " 我要吃 " ,quality_food,junk_food) chi( " 大米饭 " , " 小米饭 " ) # “大米饭”传递给quality_food "小米饭"传递给junk_food按照位置传 现在问题来了,我想吃任意食物,数量是任意的,食物也是任意的,这时我们就要用到动态参数了。 在参数位置编写*表示接收任意内容 def chi(* food): print ( " 我要吃 " ,food) chi( " 大米饭 " , " 小米饭 " ) 结果: 我要吃( " 大米饭 " , " 小米饭 " ) # 多个参数传递进去,收到的内容是元祖tuple 动态接受参数的时候要注意:动态参数必须在位置参数后面 def chi(* food

python3开发进阶-Django框架的Form表单系统和基本操作

自古美人都是妖i 提交于 2021-02-14 11:13:49
阅读目录 什么是Form组件 常用字段和插件 自定义校验的方式 补充进阶 一、什么是Form组件 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。 如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留用户输入的内容 1、普通的登录 views.py def login(request): error_msg = "" if request.method == "POST": username = request.POST.get("username") pwd = request.POST.get("pwd") if username == "duoduo" and pwd == "123456": return HttpResponse("OK") else: error_msg = "用户名或密码错误" return render(request, "login.html", {"error_msg": error_msg}) login

BUUCTF-writeup

独自空忆成欢 提交于 2021-02-14 11:12:00
Reverse RSA 使用openssl模块 rsa -pubin -text -modulus -in pub.key得到n值,在 factordb.com上 分解大素数得到p,q值,脚本生成 private.pem。 # coding=utf-8 import math import sys from Crypto.PublicKey import RSA keypair = RSA.generate(1024 ) keypair.p = 2859604688904516379356294403726392834xx keypair.q = 3040087416046019244943281559752724184xx keypair.e = 65537 keypair.n = keypair.p Qn = long((keypair.p - 1) * (keypair.q - 1 )) i = 1 while (True): x = (Qn * i) + 1 if (x % keypair.e == 0): keypair.d = x / keypair.e break i += 1 private = open( ' private.pem ' , ' w ' ) private.write(keypair.exportKey()) private.close()

python学习:python面向对象

那年仲夏 提交于 2021-02-14 11:10:15
今天我们先来讲述python面向对象的相关知识:文章有点长,请耐心看完。 在学习python中有任何困难不懂的可以加入我的python交流学习QQ群:629614370,多多交流问题,互帮互助,群里有不错的学习教程和开发工具 类的成员 类的成员可以分为三大类:字段、方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。 一、字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,普通字段属于对象,静态字段属于类。 class Province: # 静态字段 country = '中国' def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('河北省') print obj.name # 直接访问静态字段 Province.country 由上述代码可以看出【普通字段需要通过对象来访问】【静态字段通过类访问】,在使用上可以看出普通字段和静态字段的归属是不同的。其在内容的存储方式类似如下图: 由上图可是: 静态字段在内存中只保存一份; 普通字段在每个对象中都要保存一份。 应用场景: 通过类创建对象时

selenium+python自动化框架

坚强是说给别人听的谎言 提交于 2021-02-14 10:44:17
流程 : 环境准备 eclipse :需安装pydev、testng插件 python :安装python完成后,需 pip下安装selenium:命令: pip install selenium 我现在的环境: eclipse【 Neon.3 Release (4.6.3)】+JDK1.8+python3.6.3+pydev 6.4.4+selenium3.8.1 2 eclipse创建python项目 1 src:框架主要代码,很重要!!其中,framework主要实现 配置文件的读取,日志类,读取数据库,selenium常用方法封装,浏览器启动类等 2 config :配置文件,配置url,数据库等 data:放的测试案例的数据—因为表太多,现在不用了,数据改放在了数据库中 3 logs:顾名思义,放生成的日志 4 PageElement:放需要的页面元素 5 report:生成的测试报告会在这里 6 result:本来想放具体的测试结果,如哪条案例未通过放这里!!现在也没啥用!可以不用 7 screenshot:放运行错误后的截图 8 tools:工具类:如驱动啥的 测试数据准备 3.1 测试元素表 3.2测试数据表 ** 测试主框架的搭建 4.1框架目录 每个包的解释: framework:自动化测试框架的支撑,主要实现功能为对selenium一些常用方法的封装

django之ORM

荒凉一梦 提交于 2021-02-14 09:29:48
前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行数据库操作 ORM是什么?:(在django中,根据代码中的类自动生成数据库的表也叫--code first) ORM: Object Relational Mapping(关系对象映射) 类名对应------》数据库中的表名 类属性对应---------》数据库里的字段 类实例对应---------》数据库表里的一行数据 obj.id obj.name.....类实例对象的属性 Django orm的优势: Django的orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句;所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite....,如果数据库迁移,只需要更换Django的数据库引擎即可; 一、Django连接MySQL 1、创建数据库 (注意设置 数据的字符编码) 由于Django自带的orm是data_first类型的ORM,使用前必须先创建数据库 create database day70 default character set utf8

spark小文件合并

点点圈 提交于 2021-02-14 08:58:09
package spark99 import java.io.IOException import org.apache.hadoop.fs.{FileSystem, Path} import org.apache.log4j.Logger import org.apache.spark.sql.hive.HiveContext import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.{SQLContext, SaveMode} /** * Created by hadoop on 下午11:54. */ object FilesManage { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setMaster("local[2]").setAppName("mergefile") val sc = new SparkContext(sparkConf) val sqlContext = new HiveContext(sc) val logger = Logger.getLogger("org") val fileSystem = FileSystem.get(sc

snake eating food

浪尽此生 提交于 2021-02-14 08:50:09
pygame 初始化 # 初始化游戏 pygame.init() # 初始化pygame screen = pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT]) # 初始化窗口 pygame.display.set_caption('This is my first pygame-program') # 设置窗口标题 #!/usr/bin/env python # -*- coding:utf-8 -*- #@Time : 2019/3/24 15:08 #@File : yuanzu.py import pygame import sys import random # 全局定义 SCREEN_X = 600 SCREEN_Y = 600 # 蛇类 # 点以25为单位 class Snake(object): # 初始化各种需要的属性 [开始时默认向右/身体块x5] def __init__(self): self.dirction = pygame.K_RIGHT self.body = [] for x in range(5): self.addnode() # 无论何时 都在前端增加蛇块 def addnode(self): left, top = (0, 0) if self.body: left, top =