#!/usr/bin/env python # -*- coding:utf-8 -*- class Foo:#定义类 def mail(self,email,message):#定义类的方法 print('发送邮件给%s! 信息:%s'% (email,message)) return True obj = Foo();#创建对象 obj.mail('40365257@qq.com','测试邮件信息123')#对象调用方法 self参数不用赋值,系统自动赋值 #类 对象的封装和调用 class SQLHelper: def fetch(self,sql): #这里的self 指代后面实例化的对象obj,所有可以取得 obj对象的赋值 obj.hhost,obj.uuserane,obj.pwd print(self.hhost) print(self.uuserane) print(self.pwd) print(sql) obj = SQLHelper() obj.hhost="c1.salt.com" obj.uuserane="alex" obj.pwd="123" obj.fetch("select * from user") #========> 什么时候用面向对象 ?当函数中某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性封装到对象,然后 #去对象中取值可用 #=====>类的公有私有=====> class Person: name="小鲫鱼"#公有变量 __home="cq"#两个下划线 表示类的私有变量 def take(self): print(self.message) p=Person() print(p.name)#公有变量访问 p.message="我是Person类" p.take() #====>类的继承====> class Man(Person):#从Person类继承 pass m=Man() m.message="我是Man类" m.take()#从父类继承了take方法 #=======类的组合====>把几个不能继承的类 组合进一个类 #下例把乌龟类和鱼类 组合进池塘类 class Turtle: def __init__(self,x): self.num=x class Fish: def __init__(self,y): self.num=y class Pool: def __init__(self,x,y): self.x = Turtle(x) self.y = Fish(y) def Print_num(self): print("水池有%d条鱼和%d只乌龟" % (self.x.num,self.y.num)) pool = Pool(1,10) pool.Print_num()