标签:
概述
对比示例:函数式变成和面向对象编程
连接数据库的增删改查
# 函数式编程 def slect(host, username, password, sql): pass def create(host, username, password, database): pass def remove(host, username, password, table): pass def modify(host, username, password, nid): pass # 调用函数 hostname = "db01.renrenche.com" user = "admin" pwd = "123" slect(hostname, user, pwd, "select * from db1") create(hostname, user, pwd, "db1") remove(hostname, user, pwd, "table1") modify(hostname, user, pwd, "id01")
# 面向对象编程 # 01 创建类 class SQLHeper: def slect(self, sql): print(self.hostname) print(sql) def create(self, database): pass def remove(self, table): pass def modify(self, nid): pass # 02 创建对象 obj = SQLHeper() # 03 定义公共参数 obj.hostname = "db01.renrenche.com" obj.user = "admin" obj.pwd = "123" # 04 调用类的方法 obj.slect("select * from db1") obj.create("db1") obj.remove("table1") obj.modify("id")
一、创建类和对象
面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。
类就是一个模板,模板里可以包含多个函数,函数里实现一些功能
对象则是根据模板创建的实例,通过实例对象可以执行类中的函数
二、面向对象的三大特性:
面向对象的三大特性是指:封装、继承和多态。
1、封装
引入__init__()方法:
# 01 创建类
class SQLHeper:
def __init__(self, host, username, password):
self.hostname = host
self.user = username
self.pwd = password
def slect(self, sql):
print(self.hostname)
print(sql)
def create(self, database):
pass
def remove(self, table):
pass
def modify(self, nid):
pass
# 02 创建对象
obj1 = SQLHeper("test1.rrc.com", "admin01", "123", )
obj2 = SQLHeper("test2.rrc.com", "admin02", "456", )
# 03 调用类的方法
obj1.slect("select * from db1")
obj2.slect("select count(*) from db2")
不止可以封装普通参数,可以封装任何参数
# 类的对象可以封装任何参数 class c1: def __init__(self, name, obj): self.name = name self.obj1 = obj class c2: def __init__(self, job, age): self.job = job self.age = age def show(self): print(self.job) class c3: def __init__(self, aaa): self.abc = aaa c2_obj = c2("IT", 18) c1_obj = c1("Pesen", c2_obj) print(c1_obj.obj1.age) c3_obj = c3(c1_obj) # 通过c3 调用c2的show方法 c3_obj.abc.obj1.show()
2、继承
继承,面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。
对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。
class Foo1: # Foo1是Foo2的父类(基类) def show(self, name): print("F1.show", name) class Foo2(Foo1): # Foo2是Foo1的子类(派生类) def __init__(self, name): self.name = name def bar(self): print("bar") def show(self, name): print("F2.show", name) obj = Foo2("aaa") obj.bar() obj.show("Pesen") # 优先执行自己的方法
python有一个特殊的继承方式就是多继承
标签:
原文地址:http://www.cnblogs.com/pesen/p/5602114.html