python实例

python 全栈开发,Day23(复习,isinstance和issubclass,反射)

岁酱吖の 提交于 2020-03-18 02:06:17
一、复习 class A: def func1(self):pass def func2(self): pass def func3(self): pass a = A() b = A() print(A.func1) print(a.func1) print(b.func1) 执行输出: <function A.func1 at 0x00000286A24EAA60> <bound method A.func1 of <__main__.A object at 0x00000286A2381048>> <bound method A.func1 of <__main__.A object at 0x00000286A2381358>> bound 表示绑定的意思。当类A实例化时,会将里面的方法与做类做绑定。 class A: def func1(self):pass # 对象与方法之间的绑定 @classmethod def func2(self): pass # 类与方法之间的绑定 @classmethod def func3(self): pass a = A() b = A() #普通方法 对象和类绑定的过程 print(A.func2) print(a.func2) # 对象能找到类 类里面绑着方法 print(b.func2) 执行输出: <bound method A

Python基础(第八节)

我的未来我决定 提交于 2020-03-17 09:48:50
方法没有重载 1、在其他语言中,可以定义多个同名的方法 2、Python中方法的参数没有声明类型,参数的数量也可以由可变参数控制,因此Python中没有方法的重载 3、定义一个方法即可有多种调用方式,相当于实现了其他语言中的方法的重载 4、定义多个同名方法时,只有最后一个有效 方法的动态性 Python是动态语言,可以动态地为类添加新方法,或者动态地修改类的已有的方法 class Person: def work(self): print("努力工作!") def play_game(a): print("{}在玩游戏".format(a)) def work2(n): print("努力赚大钱,努力工作!") Person.play = play_game p = Person() p.work() p.play() #解释器解释为Person.play(p) Person.work = work2 #二者形参数量要对应 p.work() 运行结果为: 努力工作! <__main__.Person object at 0x00000287ABF64CF8>在玩游戏 努力赚大钱,努力工作! 私有属性和私有方法 1、Python对于类的成员没有严格的访问控制权限,这与其他面向对象语言有区别 2、关于私有属性和私有方法有如下要点: ①通常我们约定,两个下划线开头的属性是私有的

python运维开发之第七天

时光毁灭记忆、已成空白 提交于 2020-03-17 09:09:21
一、面向对象编程进阶 1、静态方法   @staticmethod   名义上归类管理,实际上跟类没什么关系   在静态方法里,访问不了类或实例中的任何属性 class Static_method(object): def __init__(self,name): #构造函数,初始化实例变量 self.name = name @staticmethod #静态方法调用 def eat(self,name): #归属于类管理,实际上跟类没什么关系 print("%s is eating"% name) print('可以调用self本身名字%s'% self.name) d = Static_method('xiaowang') #定义一个实例 d.eat(d,'xiaohan') #调用self方法时,必须传实例本身作为参数 静态方法 xiaohan is eating 可以调用self本身名字xiaowang 结果 2、类方法   @classmethod   只能访问类变量,不能访问实例变量 class Class_method(object): class_name = 'xiaohan' #类变量 def __init__(self,name): #构造函数,初始化实例变量 self.name = name #实例变量 @classmethod #类方法调用 def eat

Python学习--面向对象编程

元气小坏坏 提交于 2020-03-17 07:05:49
一、编程范式 编程范式:按照什么方式来去编程,去实现一个功能。举个例子:做饭可以用电磁炉,也可以用燃气灶。不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程。 二、两大编程范式 1、面向过程编程 面向过程的思想是把一个项目、一件事情按照一定的顺序,从头到尾一步一步地做下去,先做什么,后做什么,一直到结束。这种思想比较好理解,其实这也是一个人做事的方法,我们之前编程的思想也都是使用这种思想。这种编程思想只要前面有一个步骤变了,那么后面的就也要变,维护成本高。 面向过程多用于编写一次性脚本或代码量极少的简单小程序。 2、面向对象编程 面向对象--Object Oriented Programming,简称oop。面向对象的思想是把一个项目、一件事情分成更小的项目,或者说分成一个个更小的部分,每一部分负责什么方面的功能,最后再由这些部分组合而成为一个整体。这种思想比较适合多人的分工合作,就像一个大的机关:分各个部门,每个部门分别负责某样职能,各个部门可以不用理解其他部门的事,只要完成自己那一部分的事情就OK了。 三、面向对象的优点 对于编程初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都很清楚概念以及语法,但是一到真正写程序的时候,还是喜欢用函数式编程来写代码。特别是初学者,很容易陷入一个窘境就是

Django学习总结之五模型

家住魔仙堡 提交于 2020-03-17 02:46:53
一、MTV开发模式 M:模型(model),数据存取层,处理与数据相关的所有事务。 T:模板(Template),表现层,处理与表现相关的决定。 V:视图(views),业务逻辑层,该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。 二、数据库配置 打开setting.py 配置文件,找到: DATABASE_ENGINE = '' DATABASE_NAME = '' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST = '' DATABASE_PORT = '' DATABASE_ENGINE:是数据库引擎,设置如下: 数据库引擎设置 设置 数据库 数据库引擎 postgresql PostgreSQL psycopg 1.x版, http://www.djangoproject.com/r/python-pgsql/1/ postgresql_psycopg2 PostgreSQL psycopg 2.x版, http://www.djangoproject.com/r/python-pgsql/ mysql MySQL MySQLdb , http://www.djangoproject.com/r/python-mysql/ sqlite3 SQLite 如果使用Python 2

2 Model层 -定义模型

▼魔方 西西 提交于 2020-03-17 02:46:18
1 ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称,主要任务是: 根据对象的类型生成表结构 将对象、列表的操作,转换为sql语句 将sql查询到的结果转换为对象、列表 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动 Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表 2 使用mysql 数据库 在虚拟环境中安装mysql包 python@ubuntu:~$ workon h4 (h4) python@ubuntu:~$ pip list (h4) python@ubuntu:~$ pip install mysql-python (h4) python@ubuntu:~/Desktop/projects$ django-admin startproject test2 在mysql中创建数据库 python@ubuntu:~$ mysql -uroot -pmysql create databases test2 charset=utf8 打开settings.py文件,修改DATABASES项 DATABASES = { 'default': { 'ENGINE': 'django.db

Python——项目-小游戏

别来无恙 提交于 2020-03-17 01:20:55
开始我们的项目 飞机大战 1 项目的初体验 以及前期准备 游戏初体验画面 验证一下本地第三方包有没有导入 python3 -m pygame.examples.aliens 如果没有出现游戏画面请先安装这个包 sudo pip3 install pygame 开始搭建目录结构 创建主程序 导入素材图片,新建 名为:“飞机大战‘项目 建立主程序员 ganme_main.py 把素材图片都导入到项目文件夹中 游戏的逻辑 主要的逻辑,就是判断一系列的图片运动碰撞,产生不同的事件 ,从而产生不同的效果 2.开始绘制背景和窗口 首先我们要注意到两个重要的pygame方法 一个是初始化和卸载方法 import pygame pygame.init() #游戏代码 pygame,quit(),卸载所有的pygame模块 在游戏结束之前调用!如何才是真正的结束游戏 2. pygame中的 游戏中的坐标系? - 简单的结束一下这种属性 ![](https://img2020.cnblogs.com/blog/1547034/202003/1547034-20200316235513358-1507055261.png) - pygame中专门准备了一个类Rect用于描述矩形区域,在本项目中,所有的图片都是Rect的创建出来的矩形对象。注意:即使你不初始化它 你也一样可以使用它

Python学习 Day16 Python3 MySQL 数据库

▼魔方 西西 提交于 2020-03-16 18:36:15
Python3 MySQL 数据库 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 PyMySQL 安装 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。 PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。 如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL: $ pip install PyMySQL 如果你的系统不支持 pip 命令,可以使用以下方式安装: 1、使用 git 命令下载安装包安装(你也可以手动下载): $ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL/ $ python3 setup.py install 2、如果需要制定版本号,可以使用 curl 命令来安装: $ # X.X 为 PyMySQL 的版本号 $ curl -L https://github.com/PyMySQL/PyMySQL/tarball

python字典的简单操作(修改、删除、嵌套、遍历、复制)

余生长醉 提交于 2020-03-16 17:25:46
一、Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。 >>>dict = {'a': 1, 'b': 2, 'b': '3'} >>> dict['b'] '3' >>> dict {'a': 1, 'b': '3'} 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 1、例子 # python的数据类型:字典 # 数据类型与变量关联 name = 'bily' num = 89 key = 88.8 list = [3,4,5,6] tuple = (6,4,68) # 字典的例子:键和值 dict = {'name':'老周','age':'29','job':'程序员'} print(dict) dict1={1:101,2:102} print(dict1) 以上实例输出结果: {'name': '老周', 'age': '29', 'job': '程序员'} {1: 101, 2: 102} 表和元组直接写入值即可,而字典需要键和值皆有

图形化编程娱乐于教,Kittenblock实例,跳障碍的小女孩

社会主义新天地 提交于 2020-03-16 06:59:15
图形化编程娱乐于教,Kittenblock实例,跳障碍的小女孩 跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同。关键的问题在于,带入感,我能给出的建议,就是咬咬牙,坚持住,没有学不会的知识。会陆续分享图形化编程的经验,希望能够做成一个专题。如果您觉得有用,就给点个赞吧。涉及的软件包括scratch3.0 (.sb3)、Python、Kittenblock。 程序解读:跳障碍的小女孩 知识点:循环,侦测,控制,选择,特效,运算,音乐 涉及的软件:scratch3.0 (.sb3)、Python、Kittenblock。 来源: https://www.cnblogs.com/ztg1/p/12501619.html