当前位置:   article > 正文

python-类与对象_python类和对象

python类和对象

目录

前言

1、对象的简介

创建对象的步骤:

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

多重继承:

组合:

构造函数(__init__):

重写:

super()函数:


前言

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

1、对象的简介

对象=属性+方法

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

方法:对象所能做的事情

创建对象的步骤:

①创建一个类:

  1. class Turtle:
  2. # 属性
  3. head = 1
  4. eyes = 2
  5. shell = True
  6. # 方法
  7. def sleep(self):
  8. print("Zzzz……")

②再通过类创建对象:

t1 = Turtle()

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

  1. >>> class Turtle:
  2. def myself(self):
  3. print(self)
  4. >>> t1=Turtle()
  5. >>> t1.myself()
  6. <__main__.Turtle object at 0x000001DC379B3EE0>
  7. >>> print(t1)
  8. <__main__.Turtle object at 0x000001DC379B3EE0>

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

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

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

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

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

  1. class A:
  2. x=520
  3. def hello(self):
  4. print("hello A~")
  5. class B(A):
  6. pass
  7. #isinstance方法用作判断一个对象是否继承于一个类
  8. >>> b = B()
  9. >>> print(isinstance(b,A))
  10. True
  11. >>> print(isinstance(b,B))
  12. True
  13. #issubclass方法用作判断一个类是否为另一个类的子类
  14. >>> print(issubclass(B,A))
  15. True

多重继承:

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

  1. class A:
  2. x=1
  3. class B:
  4. y=2
  5. class C(A,B):
  6. pass
  7. >>> c=C()
  8. >>> print(c.y)
  9. 2

组合:

  1. class Turtle:
  2. def say(self):
  3. print("我要跑起来")
  4. class Cat:
  5. def say(self):
  6. print("喵~")
  7. class Dog:
  8. def say(self):
  9. print("旺~")
  10. class Garden:
  11. t=Turtle()
  12. c=say()
  13. d=Dog()
  14. def say(self):
  15. self.t.say()
  16. self.c.say()
  17. self.d.say()
  18. >>> g=Garden()
  19. >>> g.say
  20. 我要跑起来
  21. 喵~
  22. 旺~

构造函数(__init__):

  1. class C:
  2. def __init__(self,x,y):
  3. self.x = x
  4. self.y = y
  5. def add(self):
  6. return self.x+self.y
  7. >>> c=C(2,3)
  8. >>>print(c.add())
  9. 5

重写:

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

  1. class C:
  2. def __init__(self,x,y):
  3. self.x = x
  4. self.y = y
  5. def add(self):
  6. return self.x+self.y
  7. class D(C):
  8. def __init__(self,x,y,z):
  9. C.__init__(self,x,y)
  10. self.z=z
  11. def add(self):
  12. return C.add(self)+self.z
  13. >>> d=D(1,2,3)
  14. >>>print(d.add())
  15. 6

super()函数:

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

  1. class C:
  2. def __init__(self,x,y):
  3. self.x = x
  4. self.y = y
  5. class D(C):
  6. def __init__(self,x,y,z):
  7. super().__init__(self,x,y)
  8. self.z=z
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号