资讯详情

python入门开发之属性查找与绑定方法

本节重点

总结面向对象的优点 本节长度应控制在10分钟内

面向对象的代码级别 1.当没有学习概念时,数据和功能是分开的

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','utf存储过程程的名称 

我们能想到的解决办法是将这些变量定义为全局变量

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,存储过程中的名称 

3.然而,2的解决方案也存在问题。根据2的想法,我们将定义大量的全球变量。这些全球变量没有区别,即可以用于所有功能。然而,事实上,只有HOST,PORT,DB,CHARSET是给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)   obj=MySQLHandler('127.0.0.1',3306,'db1') obj.exc1('select * from tb1;') obj.exc(存储过程中的名称) 总结使用类可以:   将数据与专门操作数据的功能集成在一起。 可扩展性高 定义类并产生三个对象  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() 

标签: wpq铝合金材料传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台