python基础学习1-面向对象

#!/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()
原文地址:https://www.cnblogs.com/whzym111/p/5811289.html