python继承

python 异常处理

孤街醉人 提交于 2020-02-05 21:28:27
''''''#print(3 / 0)#需求:当程序遇到问题时不让程序结束,而越过错误继续向下执行'''try……except……else格式:try: 语句texcept 错误码 as e: 语句1except 错误码 as e: 语句2……except 错误码 as e: 语句nelse: 语句e注意:else语句可有可无作用:用来检测try语句块中的错误,从而让except语句捕获错误信息并处理逻辑:当程序执行到try-except-else语句时1、如果当try“语句t”执行出现错误,会匹配第一个错误码,如果匹配上就执行对应"语句"2、如果当try“语句t”执行出现错误,没有匹配的异常,错误将会被提交到上一层的try语句。或者到程序的最上层3、如果当try“语句t”执行没有出现错误,执行else下的“语句e”(你得有)'''try: print(3 / 1)except NameError as e: print("没有该变量")except ZeroDivisionError as e: print("除数为0了")else: print("代码没有问题")print("*************")#使用except而不使用任何的错误类型try: #print(4 / 0) print(num)except: print("程序出现了异常")

Python 之 MySQL 操作库 lazy_mysql

泪湿孤枕 提交于 2020-02-05 02:44:51
TOC Intro Installation Tutorial API Engine Pool Column Table Intro lazy_mysql 是一个非常简单易用,用来操作 MySQL 的 Python 第三方库。它基于 MySQL-python 之上提供了四个常用对象,分别是: Engine : 负责连接数据库,执行 SQL 语句。 Pool : 数据库连接池,负责管理 Engine 对象。 Table : 该对象映射到数据表。 Column : 该对象映射到数据表字段。 Dependencies Python 2.6 - 2.7 MySQLdb-python 1.2.3+ Installation 从 GitHub 下载。 git clone https://github.com/hendiko/lazy_mysql.git 或者直接下载 lazy_mysql.py 文件,将 lazy_mysql.py 文件放到项目中任意可导入目录均可。 Tutorial 1. 建立数据库连接 使用 Engine 对象连接数据库。 from lazy_mysql import Engine, Pool, Table, Column engine = Engine('localhost', 'test', 'root', 'root') 如果要应付多线程多并发连接,可使用 Pool

python学习日记(继承和多态)

橙三吉。 提交于 2020-02-04 17:47:08
继承 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。 比如,我们已经编写了一个名为 Animal 的class,有一个 run() 方法可以直接打印: class Animal(object): def run(self): print('Animal is running...') 当我们需要编写 Dog 和 Cat 类时,就可以直接从 Animal 类继承: class Dog(Animal): pass class Cat(Animal): pass 对于 Dog 来说, Animal 就是它的父类,对于 Animal 来说, Dog 就是它的子类。 Cat 和 Dog 类似。 继承有什么好处?最大的好处是子类获得了父类的全部功能。由于 Animial 实现了 run() 方法,因此, Dog 和 Cat 作为它的子类,什么事也没干,就自动拥有了 run() 方法: dog = Dog() dog.run() cat = Cat() cat.run() 运行结果如下: Animal is running... Animal is running... 当然,也可以对子类增加一些方法,比如Dog类:

python基础——继承和多态

▼魔方 西西 提交于 2020-02-04 16:28:08
python基础——继承和多态       在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class) 。   比如,我们已经编写了一个名为 Animal 的class,有一个 run() 方法可以直接打印: class Animal(object): def run(self): print('Animal is running...')    当我们需要编写 Dog 和 Cat 类时,就可以直接从 Animal 类继承: class Dog(Animal): pass class Cat(Animal): pass   对于 Dog 来说, Animal 就是它的父类,对于 Animal 来说, Dog 就是它的子类。 Cat 和 Dog 类似。    继承有什么好处?最大的好处是子类获得了父类的全部功能 。由于 Animial 实现了 run() 方法,因此, Dog 和 Cat 作为它的子类,什么事也没干,就自动拥有了 run() 方法: dog = Dog() dog.run() cat = Cat() cat.run()    运行结果如下: Animal is running... Animal is

模块

给你一囗甜甜゛ 提交于 2020-02-04 14:52:28
第五章节 函数 截止目前:面向过程编程。【可读性差/可重用性差】。 发邮件 ```python 面向过程编程 user_input = input('请输入角色:') if user_input == '管理员': import smtplib from email.mime.text import MIMEText from email.utils import formataddr msg = MIMEText('管理员,我想演男一号,你想怎么着都行。', 'plain', 'utf-8') msg['From'] = formataddr(["李邵奇", '15776556369@163.com']) msg['To'] = formataddr(["管理员", '344522251@qq.com']) msg['Subject'] = "情爱的导演" server = smtplib.SMTP("smtp.163.com", 25) server.login("15776556369@163.com", "qq1105400511") server.sendmail('15776556369@163.com', ['管理员', ], msg.as_string()) server.quit() elif user_input == '业务员': import smtplib

面向对象

霸气de小男生 提交于 2020-02-04 14:49:48
第七章节 面向对象- 7.1 面向对象基本格式 ```python 定义类 class 类名: def 方法名(self,name): print(name) def 方法名(self,name): print(name) def 方法名(self,name): print(name) 调用类中的方法 1.创建该类的对象 obj = 类名() 2.通过对象调用方法 result = obj.方法名("alex") print(resutl) ``` 应用场景:遇到很多函数,需要给函数进行归类和划分。 练习题: ```python class Db: def db_read(self): pass def db_write(self): pass def db_delete(self): pass def db_update(self): pass class File: def file_read(self): pass def file_write(self): pass def file_delete(self): pass def file_update(self): pass class Redis: def redis_read(self): pass def redis_write(self): pass def redis_delete(self): pass def

Python中的@classmethod

好久不见. 提交于 2020-02-04 14:12:39
1.@classmethod 是一个函数修饰符,它表示接下来的是一个类方法,而对于平常我们见到的则叫做实例方法。 类方法的第一个参数cls,而实例方法的第一个参数是self,表示该类的一个实例。 2.普通对象方法至少需要一个self参数,代表类对象实例 3.类方法有类变量cls传入,从而可以用cls做一些相关的处理。并且有子类继承时,调用该类方法时,传入的类变量cls是子类,而非父类。 对于类方法,可以通过类来调用,就像C.f(),有点类似C++中的静态方法, 也可以通过类的一个实例来调用,就像C().f(),这里C(),写成这样之后它就是类的一个实例了。 所以我们在写类的方法的时候如果要传2个参数,在类中定义方法的时候要写三个加一个cls或self其中cls可以点出用@classmethod的方法,self可以点出未用@classmethod方法 来源: https://www.cnblogs.com/jie123/p/5508569.html

python中的新式类和旧式类

三世轮回 提交于 2020-02-04 14:12:20
python中的新式类和旧式类 2018-05-15 python2中既有新式类又有旧式类 默认是经典类,只有显式继承object才是新式类 python3中只有新式类 默认是新式类,不必显式继承ojbect 新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而旧式类的MRO算法是采用深度优先搜索 新式类相同父类只执行一次构造函数,经典类重复执行多次。 新式类都从object继承,经典类不需要 以下是一个例子: class A: pass class B: pass class C(B): pass class D(C,A): pass 执行顺序为:D->C->B,->A class A(object): pass class B(object): pass class C(object): pass class D(A,B,C): pass 执行顺序为: D->A->B->C->Object 来源: https://www.cnblogs.com/aaron2932/p/aaron.html

python(十四)新式类和旧式类

谁都会走 提交于 2020-02-04 14:08:23
这里有个重要概念呢在下面那个链接 http://blog.csdn.net/zimou5581/article/details/53053775 http://www.cnblogs.com/btchenguang/archive/2012/09/17/2689146.html 1、新式类都从object继承,经典类不需要。 2、新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而旧式类的MRO算法是采用深度优先搜索 3、新式类相同父类只执行一次构造函数,经典类重复执行多次。 ( Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Python 3.x中默认都是新式类,经典类被移除,不必显式的继承object ) 一个旧式类的深度优先的例子 class A(): def foo1(self): print "A" class B(A): def foo2(self): pass class C(A): def foo1(self): print "C" class D(B, C): pass d = D() d.foo1() # A 按照经典类的查找顺序 从左到右深度优先 的规则,在访问 d.foo1() 的时候,D这个类是没有的..那么往上查找,先找到B,里面没有,深度优先,访问A,找到了foo1(

Python3基础(十) 类的初印象

喜你入骨 提交于 2020-02-04 13:50:45
Python是一种面向对象的脚本语言,所以它也提供了面向对象编程的所有基本特征: 允许多继承的类继承机制 、 派生类可以重写它父类的任何方法 、 一个方法可以调用父类中同名的方法 、 对象可以包含任意数量和类型的数据成员 。关于继承,将在下一篇博文里面介绍,本文只简单的介绍Python中的类的定义和使用。 一、类定义 最简单的类的定义形式: class ClassName: <statement-1> . . . <statement-N> 类定义会创建一个新的命名空间,作为一个局部的作用域。在Python中,类本身就是对象,当一个类定义结束后, 一个 Class Object 就被创建。 二、类对象 类对象(Class Object)支持两种操作: 属性引用 和 实例化 。 属性引用 类对象的属性引用和 Python 中所有的属性引用一样,形式为: obj.name 。类对象创建后,类命名空间中所有的名字都是有效属性名,像下面这个类: class MyClass: """A simple example class""" i = 12345 def f(self): return 'hello world' 它有一个属性 i 和 方法 f ,所以可以用 MyClass.i 和 MyClass.f 进行属性引用,分别返回一个整数和一个函数对象。 __doc__ 也是一个合法的属性