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:57:29
某厂面试归来,发现自己落伍了!>>> 起步 中华文化博大精深,是中华民族的财富,吸收和继承发扬中 华文化,是现代每个炎黄子孙无可推卸的天职。 今天小编就交大家用python写一个脚本,实现汉子和拼音之间的转换 pinyin.py 汉字转拼音,With Python Example: from pinyin import PinYin test = PinYin() test.load_word() test.hanzi2pinyin(string='调雨稻是中国的') Out: test.hanzi2pinyin(string='调雨稻是中国的') ['diao', 'yu', 'dao', 'shi', 'zhong', 'guo', 'de'] test.hanzi2pinyin_split(string='调雨稻是中国的', split="-") diao-yu-dao-shi-zhong-guo-de 主程序 #!/usr/bin/env python # -*- coding:utf-8 -*- """ Author:cleverdeng E-mail:clverdeng@gmail.com """ __version__ = '0.9' __all__ = ["PinYin"] import os.path class PinYin(object): def _

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

深入python的set和dict

て烟熏妆下的殇ゞ 提交于 2020-03-16 07:56:57
一. collections中的abc    和list(Sequence)相似,都继承于Collection,添加了一些方法 二. dict的常见用法    (setdefault,defaultdict,__missing__方法)   1.copy():        from collections.abc import MutableMapping a = {'LYQ1':{'SWPU':'软件工程'}, 'LYQ2':{'SWPU2':'软件工程2'}} #这是浅拷贝,指向的是同一值,修改一个,另一个也会修改 b=a.copy() b['LYQ1']['SWPU']='我是浅拷贝' print(b) print(a) 注:copy方法是浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 a = {'LYQ1':{'SWPU':'软件工程'}, 'LYQ2':{'SWPU2':'软件工程2'}} import copy #深拷贝,指向不同的对象 deep_b=copy.deepcopy(a) deep_b['LYQ1']['SWPU']='我是深拷贝' print(deep_b) print(a)   2.fromkeys(): #把一个可迭代对象转换为dict,{'SWPU':'软件工程'}为默认值 my_list=['Stu1','Stu2'] my

python day 1--python初始

可紊 提交于 2020-03-16 03:53:08
笔者:QQ: 360212316 Python初识 Python的创始人为Guido van Rossum。1989年圣诞节期间,在 阿姆斯特丹 ,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。 python的应用领域 1、云计算 : 云计算最火的语言, 典型应用OpenStack 2、WEB开发 : 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django 3、科学运算、人工智能 : 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas 4、系统运维 : 运维人员必备语言 5、金融 :量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测 6、图形GUI : PyQT, WxPython,TkInter python的优点 1、优雅、明确、简单 2、开发效率高:python有非常强大的第三方库 3、高级语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节 4、可移植性

Python数据结构与算法分析(笔记与部分作业)

与世无争的帅哥 提交于 2020-03-16 03:40:50
最近为了给写搬砖脚本增加一些算法知识,脑残的看起来算法书。Python数据结构与算法分析,本人英语比较差,看的是翻译版本的。 网上有免费的原版的:https://runestone.academy/runestone/books/published/pythonds/index.html 不废话,开笔记,第一章Python基础,最后的反向思路就稍微卡住了我一下。 第1章,导论 计算机科学的研究对象是问题、解决问题的过程,以及通过该过程得到的解决方案。算法就是解决方案。 计算机科学可以定义为:研究问题及其解决方案,以及研究目前无解的问题的科学。 编程是指通过编程语言将算法编码以使其能被计算机执行的过程。如果没有算法,就不会有程序。 Python支持面向对象编程范式。这意味着Python认为数据是问题解决过程中的关键点。在Python以及其他所有面向对象编程语言中,类都是对数据的构成(状态)以及 数据能做什么(行为)的描述。由于类的使用者只能看到数据项的状态和行为,因此类与抽象数据类型相似的。 在面向对象编程范式中,数据项被称为对象。一个对象就是类的一个实例。 上两个书中的完整代码: def gcd(m,n): while m%n != 0: oldm = m oldn = n m = oldn n = oldm%oldn return n class Fraction: def _

Python又把GUI界面攻下了,今天就告诉你怎么玩

假如想象 提交于 2020-03-15 17:33:37
0.引言 学Python这么久了,一直想做个界面出来,最近发现Python有个内置库tkinter,利用它可以很轻松做出一些简易的UI界面,首先来看Python官方对Tkinter的说明: The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and tkinter are available on most Unix platforms, as well as on Windows systems. 从上面描述中我们不难看出,不管你是 Mac OS 系统,还是 Windows 系统,它都可以生成相对应的操作界面,这就是所谓的跨平台。 1.调用关系说明 其原理就是我们使用 Python代码去调用 Tkinter, Tkinter 已经封装了访问TK的接口,这个接口是一个图形库,支持多跨平台操作系统,进而通过它,我们就可以调用我们系统本身的GUI接口了。 2.环境 操作系统:Windows / Linux / Mac OS Python版本:3.6.6 3.小试牛刀 有了概念并了解原理之后,接下来就小试牛刀一下~ import tkinter as tk import tkinter.messagebox as mbox #

Python的10大最佳功能是什么?

谁都会走 提交于 2020-03-15 01:50:29
技巧 1: 在Python中反转字符串 a = "codementor" print "Reverse is",a[::-1] Reverse is rotnemedoc 技巧 2: 转置矩阵 mat = [[1, 2, 3], [4, 5, 6]] zip(*mat) [(1, 4), (2, 5), (3, 6)] 技巧 3: 将列表的所有三个值存储在3个新变量中 a = [1, 2, 3] x, y, z = a x 1 y 2 z 3 技巧 4: a = ["Code", "mentor", "Python", "Developer"] 从上面列表中的所有元素创建一个字符串。 print " ".join(a) Code mentor Python Developer 技巧 5: List 1 = ['a', 'b', 'c', 'd'] List 2 = ['p', 'q', 'r', 's'] 编写要打印的Python代码 ap bq cr ds for x, y in zip(list1,list2): ... print x, y ... a p b q c r d s 技巧 6: 用一行代码交换两个数字。 a=7 b=5 b, a =a, b a 5 b 7 技巧 7: 打印“ codecodecodecode

Python开发的飞机打外星人小游戏

好久不见. 提交于 2020-03-13 13:19:39
跟着《Python从入门到实践》这本书学习的Python,这本书最后的实践部分第一个就是实现一个飞机打外星人的小游戏,跟着书的步骤一步步做最终实现了,并扩展了飞机可以上下移动的功能。 游戏有9个py文件,分别是Alien_invasion.py游戏主程序,settings.py游戏设定,alien.py外星人,ship.py飞船,bullet.py子弹,game_status.py游戏启动与否状态,game_function游戏的函数,scoreborad游戏计数板,button.py游戏窗口的按钮。 下面简单说一下各个文件的作用。 首先是游戏的主程序Alien_invasion.py,主要是new一个游戏设定setting,new一个飞船,new存储子弹list,new存储外星人list,new计数板,设定初始游戏状态等游戏的初始化工作。 import sys import pygame from pygame.sprite import Group from settings import Settings from game_stats import GameStats from scoreboard import Scoreboard from button import Button from ship import Ship from alien import