面向对象

  • self 参数是个什么鬼,谁调用self就是谁。
    面向对象三大特性之一:封装
class bar:   # 建立一个 bar 类
    def __init__(self, name, age):  # __init__是类里自动运行的方法(函数写在类里就是方法)
        self.n = name
        self.a = age
        self.xue="o"  # 共同的特性可以这样搞

    def xx(self):
        print("%s-%s-%s" % (self.n, self.a,self.xue))

z=bar("gf",14)  # 封装到__init__当中
z.xx()

在这里插入图片描述

  • 创建一个简单的类
class bar:
    def add(self,x,y):
        print(x+y)
obj=bar()  # 要使用类里的方法,首先要建立“中间人”即对象
obj.add(3,4)
class bar:
    def foo(self,arg):
        print(self.name,self.age,self.gender,arg)
z=bar()
z.name="gf"
z.age=15
z.gender="男"
z.foo(18)

在这里插入图片描述

面向对象三大特性之二:继承
关于继承一定要认清 self 是谁


class father: # (父类,基类)
    def add(self,x,y):
        print(x+y)
class son(father):   # son 的父类是 father这个类,这样可以继承 father 里的方法。(子类,派生类)
    def abc(self,x,y):
        print(x*y)
obj=son()
obj.add(3,4)  # 注意 add 里的 self 还是 obj 这个对象
obj.abc(4,5)

在这里插入图片描述
注意:如果不想继承某些方法,可以子类中,重新写一个与父类中一样名字的方法。
如果即想执行自己的方法又想继承执行亲类里的方法要这样写:

class father:
    def add(self,x,y):
        print(x+y)
    def foo(self):
        print("father-foo")
class son(father):
    def abc(self,x,y):
        print(x*y)
    def foo(self):
        super(son,self).foo()  # 这样写可以执行自己的方法,还可以继承父类里的方法。当然可以把foo改成父类里的其它方法也可以的。
                               # super(son,self) 可以理解为找到父类 .foo() 就是执行其方法。   
                               # 这句还可以写成 father.foo(“self”)                                
        print("son-foo")
obj=son()
obj.foo()

在这里插入图片描述
在python中一个类可以同时继承多个父类,其寻找方式如下图

class father:

    def add(self):
        print("父亲这个类里的ADD")

class mother:
    def add(self):
        print("母亲这个类里的ADD")
class son(father,mother):
    pass
obj=son()
obj.add()

在这里插入图片描述
面向对象三大特性之三:多态
python可以忽略多态。不用声明类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值