与Python Falling In Love_Python跨台阶(面向对象)
第二课会介绍Python中的一些变量的使用、列表、元组、字典等一些详细内容。。。篇幅会比较多。。。因此在整理中。。。
先跳过第二课。。。直接来第三课。。Python中面向对象的学习以及与mysql数据库的连接!!!
Python也是一门面向对象语言,,,开始之前不得不夸下我真的。。。真的。。真的好喜欢Python啊啊啊!!!
下面我们就一起进入Python的对象世界把。。。
Python中如何去定义、创建到使用一个类???
闲话不多说。。。看代码才是硬道理。。。
Python--类创建
'''
@desc:基本类定义
@author:Jimly
@date:20160325
'''
class Student: stuNum = 0 #公开变量
__num = 0 #私有变量 使用两个下划线开头定义的变量 def __init__(self, name, age):
self.name = name
self.age = age
Student.stuNum += 1 def showStudent(self):
print(self.name, ' ', self.age) '创建学生对象'
stu = Student("ZhangSan", 20)
stu1 = Student("LiSi", 21) '访问类中的属性'
stu.showStudent()
print('stuNum: %d' % Student.stuNum)
'程序报错 因为num属性为私有属性'
#print('stuNum: %d' % Student.num) print('stu name:', getattr(stu, 'name')) #返回name属性的值,如果不存在运行会报错
print('stu has sex?', hasattr(stu, 'sex')) #判断stu对象是否存在sex属性,存在返回True,不存在返回False
setattr(stu, 'sex', 'man') #设置sex属性值,如果不存在则创建一个属性
print('stu sex:', getattr(stu, 'sex'))
delattr(stu, 'sex') #删除一个属性
print('stu sex:', hasattr(stu, 'sex'))
程序输出:
ZhangSan 20
stuNum: 2
stu name: ZhangSan
stu has sex? False
stu sex: man
stu sex: False
不像JAVA语言。。。Python是支持多继承滴。。。如class A(P1, P2, P3......)。。。
其中类P1,P2,P3就是父类。。。A就是继承了这么多父类的子类。。。
还有就是子类的构造方法中是不会默认调用父类的构造方法的。。。这一点也和JAVA有点出入。。。
Python--继承类
'''
@desc:Python继承
@author:Jimly
@date:20160325
'''
class Grand: def __init__(self):
print('Grand Constructor') def say(self):
print('I am Grand') class Parent: def __init__(self):
print('Parent Constructor') def method(self):
print('Parent method') class Child(Parent, Grand): # Child类继承Parent类和Grand类,,,Python支持多继承 def __init__(self):
# Grand.__init__(self)
# Parent.__init__(self)
print('Child Constructor') def method(self): # 重写Parent类中的method方法
print('Child method') child = Child()
child.method()
child.say()
程序运行输出:
Child Constructor
Child method
I am Grand
Python--数据库连接
想要通过Python代码连接mysql数据库,,,有MySQLdb和pymysql两种库可以用来连接mysql。。。
但是Python3之后不再支持MySQLdb。。。由于我装的是Python 3.4.3.。因此只能用pymysql库咯。。。
附:查看Python安装的版本 =》 在DOS窗口敲入命令:python --version
首先在python官网下载ez_setup.py文件。。。如若链接失效、请访问https://pypi.python.org/pypi/setuptools/
下载完ez_setup.py文件后,,,执行该文件。。。
执行命令: python ez_setup.py 如下图所示

执行完之后会在Python的安装目录下的Scripts文件夹下生成一个easy_install.exe文件。。。如下图所示

进入到该文件夹中。。执行命令: easy_install.exe pymysql3 来安装pymysql3服务如下图所示

pymysql3服务安装完之后,,,就可以动手写python连接mysql服务的程序咯。。。
实例代码如下:--查询案列
import pymysql db = pymysql.connect(user='root', passwd='root',host='localhost', db='my_form') sql = "select * \
from form_frame" cursor = db.cursor() cursor.execute(sql) for r in cursor:
print('id:', r[0], ' rows:', r[1], ' cols:', r[2]) cursor.close() db.close()
程序运行结果:
id: 5 rows: 111 cols: 111
id: 6 rows: 222 cols: 222
id: 7 rows: 333 cols: 333
id: 11 rows: 2015 cols: 111
id: 12 rows: 2015 cols: 222
id: 13 rows: 2015 cols: 333
id: 29 rows: 2015 cols: 111
id: 30 rows: 2015 cols: 222
id: 31 rows: 2015 cols: 333
注:import pymysql 可用别名替代、、、如:import pymysql as mysqldb 其中mysqldb可自定义的别名。。。
此时db = pymysql.connect(user='root', passwd='root',host='localhost', db='my_form')需改为
db = mysqldb.connect(user='root', passwd='root',host='localhost', db='my_form')
新增案列代码:
import pymysql db = pymysql.connect(user='root', passwd='root',host='localhost', db='my_form') sql = "insert into form_frame(cols, rows) values(101, 201),(102, 202)" try:
cursor = db.cursor() res = cursor.execute(sql) db.commit() print(res) #res为返回新增的记录条数 except:
db.rollback() cursor.close() db.close()
程序输出:2
好了。。。今天就到这里了。。。
与Python Falling In Love_Python跨台阶(面向对象)的更多相关文章
- 与Python Falling In Love_Python跨台阶(环境搭建)
Python--环境搭建 首先需要下载python安装包,官网下载地址:https://www.python.org/downloads/ 下载完直接点击安装... 安装完后就可以配置环境变量咯^_^ ...
- Python黑帽编程2.9 面向对象编程
Python黑帽编程2.9 面向对象编程 我个人认为,计算机语言的发展,有两个方向,一个是从低到高的发展过程,在这个过程中,语言的思考和解决问题的方式是面向硬件的.硬件本质上处理的是信号,在此基础上, ...
- python学习笔记-(十)面向对象基础
面向对象相关知识简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义 ...
- Python 第六篇(上):面向对象编程初级篇
面向:过程.函数.对象: 面向过程:根据业务逻辑从上到下写垒代码! 面向过程的编程弊:每次调用的时候都的重写,代码特别长,代码重用性没有,每次增加新功能所有的代码都的修改!那有什么办法解决上面出现的弊 ...
- Python学习系列(八)( 面向对象基础)
Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类 ...
- python系列十六:Python3 面向对象
#!/usr/bin/python #-*-coding:gbk-*- #Python3 面向对象 '''面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了 ...
- python学习-第四天补充-面向对象
python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的p ...
- Python匹马行天下之面向对象
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...
- 2016年终总结--一个Python程序猿的跨界之旅
时间过得真快.感觉15年年终总结刚写完,16年就结束了.看了blog,16年就写了可怜的8篇,对我来说16年还算顺风顺水. 真正可能出乎意料的是年底我离开了呆了2年半的龙图游戏,临时放弃了用了3年半的 ...
随机推荐
- SQL挑战——如何高效生成编码
有这样一个需求:需要根据输入的编码(这个编码值来自于数据库的一个表)生成下一个编码,编码规则如下所示(我们暂且不关心这个逻辑是否合理,只关心如何实现): 1: 最小值为A0000, 最大值为ZZZZZ ...
- linux学习之路——ubuntu 16.04 开机开启数字小键盘解决方法
第一步:安装numlockx,输入命令 sudo apt-get install numlockx 第二步:用 vim 打开 rc.local 文件,输入命令 sudo vim /etc/rc.loc ...
- sed grep find命令
一.sed [-nerf][n1,n2] action -n 安静模式,只有经过sed处理过的行才显示出来,其他不显示. -r 表示sed支持扩展的正则表达式 -e 表示直接在命令行模式上进行sed操 ...
- jquery——滚动条插件jscroll.js
一.效果如下 点击“测试中奖纪录”弹出弹框.弹框中内容超出时显示滚动条. 二.代码部分 1.html结构 <body> <a href="javascript:;" ...
- [转]Stop Sharing Session State between Multiple Tabs of Browser
本文转自:http://jinaldesai.net/stop-sharing-session-state-between-multiple-tabs-of-browser/ Scenario: By ...
- java 知识点随记
JAVA 读取配置文件: Properties props= new Properties();//文件在src目录下,编译会被加载到classpath下. Props.load(Test.class ...
- ARM学习篇 中断定时理解
1. 中断控制器 a. 中断处理流程 P1--摘自S3C2440A手册 P1简要阐述了S3C2440A内置中断控制器处理中断的流程: ●若某中断有自中断,则先接收子中断请求,否则,直接接受源中断. ...
- css常见的易混淆属性和值的区别(一)
css的属性很多,每一个属性的值也很多,组合起来便有成千上万种.不同属性之间的相互组合也可以产生不同的样式,css真是一种优美的样式设计语言.下面对工作中常见的易混淆的属性和值进行总结: 1. lin ...
- leetcode-Excel Sheet Column Title
题目: 把数字转化为excel形式的字符表示.示例:1->A 2->B 3->C ... 26->Z 27->AA... 解题思路: 乍一看有点像进制转换题目,不过细想想 ...
- UVALive 5000 Underwater Snipers --二分
题意:一条河岸线y=k,y>k区域有n个敌人,现在要在y<=k区域布置S个狙击手,狙击手的狙击范围为距离自己半径为D的圆内,问满足能够狙死所有的敌人的情况下,离河岸线最近的那个狙击手的离河 ...