python-类与对象

目录

前言

1、对象的简介

创建对象的步骤:

2、封装、继承、多重继承、组合

多重继承:

组合:

构造函数(__init__):

重写:

super()函数:


前言

数字、字符串、元组、列表、字典、函数、方法、类、模块等等都是对象。

1、对象的简介

对象=属性+方法

属性:一个对象的静态特征

方法:对象所能做的事情

创建对象的步骤:

①创建一个类:

class Turtle:

    # 属性
    head = 1
    eyes = 2
    shell = True

    # 方法
    def sleep(self):
        print("Zzzz……")

②再通过类创建对象:

t1 = Turtle()

那为什么类中的每个方法在定义时都要传入一个self参数呢?让我们先来看看self是什么

>>> class Turtle:
        def myself(self):
            print(self)

>>> t1=Turtle()
>>> t1.myself()
<__main__.Turtle object at 0x000001DC379B3EE0>

>>> print(t1)
<__main__.Turtle object at 0x000001DC379B3EE0>

哦~原来self就是t1对象本身,那为什么要传入self呢?是因为一个类可以创建出无数个实例对象,而只有传入了self参数才知道是哪个实例对象调用了这个类。

2、封装、继承、多重继承、组合

面向对象编程的三个基本特征:封装继承多态

而刚刚我们讲的内容就是封装,类提供了一个容器,把对象的属性和方法打包到一起,然后通过类生成相应的对象。

接下来我们看一看继承,通过继承创建的新类我们叫做子类,而被继承的类我们称为父类、基类或超类。

class A:
    x=520
    def hello(self):
        print("hello A~")

class B(A):
    pass

#isinstance方法用作判断一个对象是否继承于一个类
>>> b = B()
>>> print(isinstance(b,A))
True
>>> print(isinstance(b,B))
True

#issubclass方法用作判断一个类是否为另一个类的子类
>>> print(issubclass(B,A))
True

多重继承:

一个类可以继承自多个类,而首先继承的属性和方法来自于继承的第一个类,如果第一个类中没有则向后查找。例如

class A:
    x=1
class B:
    y=2
class C(A,B):
    pass

>>> c=C()
>>> print(c.y)
2

组合:

class Turtle:
    def say(self):
        print("我要跑起来")
class Cat:
    def say(self):
        print("喵~")
class Dog:
    def say(self):
        print("旺~")
class Garden:
    t=Turtle()
    c=say()
    d=Dog()
    def say(self):
        self.t.say()
        self.c.say()
        self.d.say()

>>> g=Garden()
>>> g.say
我要跑起来
喵~
旺~

构造函数(__init__):

class C:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def add(self):
        return self.x+self.y

>>> c=C(2,3)
>>>print(c.add())
5

重写:

子类写一个同名的属性或方法,对父类进行覆盖,称为重写

class C:
    def __init__(self,x,y):
        self.x = x
        self.y = y
    def add(self):
        return self.x+self.y

class D(C):
    def __init__(self,x,y,z):
        C.__init__(self,x,y)
        self.z=z
    def add(self):
        return C.add(self)+self.z

>>> d=D(1,2,3)
>>>print(d.add())
6

super()函数:

 用于获取父类的代理对象,以执行已在子类中被重写的父类方法

class C:
    def __init__(self,x,y):
        self.x = x
        self.y = y

class D(C):
    def __init__(self,x,y,z):
        super().__init__(self,x,y)
        self.z=z
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

edgarrrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值