python-面向对象编程小结

Posted OYxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-面向对象编程小结相关的知识,希望对你有一定的参考价值。

面向对象编程有到底有什么好处呢?

1、将数据与操作改数据的功能整合在一起。

  A:以前我们操作数据库的方式如下:

   1、通过定义数据库操作的函数。

   2、每次操作时写传数据库的参数和所要操作的内容。

技术分享图片
#通过调用函数的方式操作数据库
def exc1(host,port,db,charset):
    conn=connect(host,port,db,charset)
    conn.execute(sql)
    return xxx


def exc2(host,port,db,charset,proc_name)
    conn=connect(host,port,db,charset)
    conn.call_proc(sql)
    return xxx

#每次调用都需要重复传入一堆参数
exc1(127.0.0.1,3306,db1,utf8,select * from tb1;)
exc2(127.0.0.1,3306,db1,utf8,存储过程的名字)
通过函数操作数据库

  3、上面的操作有个问题,就是每次操作的时候都要传入一堆的参数。

  即便是可以简化,也只能是定义全局变量,调用时还要重复传入一堆参数。

技术分享图片
HOST=‘127.0.0.1’
PORT=3306
DB=‘db1’
CHARSET=‘utf8’

def exc1(host,port,db,charset):
    conn=connect(host,port,db,charset)
    conn.execute(sql)
    return xxx


def exc2(host,port,db,charset,proc_name)
    conn=connect(host,port,db,charset)
    conn.call_proc(sql)
    return xxx

exc1(HOST,PORT,DB,CHARSET,select * from tb1;)
exc2(HOST,PORT,DB,CHARSET,存储过程的名字)
通过定义全局变量

B、当我们学了类之后,就可以这样操作了。

 

技术分享图片
# 3、通过类的操作,这样就可以把数据与操作功能结合到一起了。
# 3.1把共有的属性抽象出来:
     #host、port、db
# 3.2把共有的方法抽象出来:
     #exc1、exc2

class MySQLHandler:
    def __init__(self,host,port,db,charset=utf8):
        self.host=host
        self.port=port
        self.db=db
        self.charset=charset
        self.conn=connect(self.host,self.port,self.db,self.charset)
    def exc1(self,sql):
        return self.conn.execute(sql)

    def exc2(self,sql):
        return self.conn.call_proc(sql)

# 4.实例化出一个对象。
obj=MySQLHandler(127.0.0.1,3306,db1)
# 5.通过对这个对象的操作,就可以把数据和相应的操作功能结合
obj.exc1(select * from tb1;)
obj.exc2(存储过程的名字)
通过定义类的方式操作

 

2、可扩展性高

   A、在类中对数据属性的扩展

  B、在类中对函数属性的扩展

 

技术分享图片
class Chinese:
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex


p1=Chinese(egon,18,male)
p2=Chinese(alex,38,female)
p3=Chinese(wpq,48,female)
类的原代码

 

技术分享图片
class Chinese:
    country=China
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    def tell_info(self):
        info=‘‘‘
        国籍:%s
        姓名:%s
        年龄:%s
        性别:%s
        ‘‘‘ %(self.country,self.name,self.age,self.sex)
        print(info)


p1=Chinese(egon,18,male)
p2=Chinese(alex,38,female)
p3=Chinese(wpq,48,female)

print(p1.country)
p1.tell_info()
新增类的方法后

注意:上面的操作我们在类中新增了一个方法,原来的对象不用做任何的改动,我们就可以使用新的类方法。这种方式,正体现了类的可扩展性高。     







以上是关于python-面向对象编程小结的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段9——JS中的面向对象编程

面向对象基础小结

Python--面向对象小结

python面向对象:小结

面向对象基础知识点小结

2020Python修炼记面向对象编程——类与对象