06 Python之面向对象基础

简介: 06 Python之面向对象基础

1、概念


1.1 面向函数的编程方式:


1、把某个需求的所有步骤,比如加减乘除,从头到尾逐步实现;


2、根据开发需求,将某些功能独立的代码。比如加法,封装成一个又一个函数。


3、最后,我们就是有顺序的调用不同的函数就可以了。


1.2 ⾯向对象的编程方式


相⽐较函数,⾯向对象是更⼤的封装,根据职责在⼀个对象中封装多个⽅法


  1. 在完成某⼀个需求前,首先确定职责 —— 要做的事情(⽅法) ;
  2. 根据职责确定不同的对象,在对象内部封装不同的⽅法;
  3. 最后完成的代码,就是顺序地让不同的对象调⽤不同的⽅法。


1.3 类和对象的概念


类和对象是⾯向对象编程的两个核⼼概念。


类:类是对⼀群具有相同特征或者⾏为的事物的⼀个统称,是抽象的,不能直接使⽤ 。


比如,人相当于一个类:身高,性别,年龄。这些特征称为属性,而吃饭,跑步,喝水,这些行为则称为方法。


对象:对象是由类创建出来的⼀个具体存在,可以直接使⽤。


由哪⼀个类创建出来的对象,就拥有在哪⼀个类中定义的 属性 和⽅法 。


1.4 类和对象的关系


类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象 ;


  • 类只有⼀个,⽽对象可以有很多个 ;
  • 不同的对象之间属性可能会各不相同 ;
  • 类中定义了什么属性和⽅法,对象中就有什么属性和⽅法,不可能多,也不可能少 。


1.5 类的设计


在程序开发中,要设计⼀个类,通常需要满⾜⼀下三个要素:


  1. 类名 这类事物的名字 ; 人
  2. 属性 这类事物具有什么样的特征 ; 身高,年龄。性别
  3. ⽅法 这类事物具有什么样的⾏为。 吃,喝,玩,乐。


1.6 属性和⽅法的确定


  1. 对于对象的特征描述,通常可以定义成属性 ,属性的具体实现可以是一个 变量;
  2. 对象具有的⾏为(动词),通常可以定义成⽅法,方法的具体实现可以是一个类里面的函数 ;


注:需求中没有涉及的属性或者⽅法在设计类时,不需要考虑。


2、语法


2.1、 class 关键字


class 关键字用于创建一个类,语法如下:


class 类名: 
    def ⽅法 1(self, 参数列表): 
    pass


⽅法的定义格式和之前学习过的函数⼏乎⼀样 ;


区别在于第⼀个参数必须是 self 。


示例:


class Cat:
    def eat(self, name):
        print(name + "吃饭")
 
    def drink(self, name):
        print(name + "喝水")


2.2 创建一个对象


  1. 实例------通过类创建出来的对象叫做类的实例;
  2. 实例化------创建对象的动作叫做实例化 。


语法:


对象名 = 类名(参数列表)


# 定义Cat类
class Cat:
    def eat(self, name):
        print(name + "吃饭")
 
    def drink(self, name):
        print(name + "喝水")
 
 
# 创建Cat 类
cat = Cat();
# 调用Cat 吃饭的方法
cat.eat("小白");
# 调用Cat 喝水的方法
cat.drink("小黑")


2.3 方法中的 self 参数


  • 在类封装的⽅法内部, self 就表示调用方法的对象自己 ;
  • 调⽤⽅法时,不需要传递 self 参数 ;
  • 在方法内部可以通过 self. 访问对象的属性;
  • 通过在方法内部使用 self.属性名 = 值,为类添加属性


  • 在方法内部可以通过 self. 调⽤对象的⽅法;
  • 在类的外部,通过 对象名. 访问对象的属性和⽅法 。


# 定义Cat类
class Cat:
    def set_name(self, name):
        self.name = name
 
    def eat(self):
        print(self.name + "吃饭")
 
    def drink(self):
        print(self.name + "喝水")
 
 
# 创建Cat 类
cat = Cat();
# 调用 set_name 方法
cat.set_name("小白")
# 调用Cat 吃饭的方法
cat.eat();
# 调用Cat 喝水的方法
cat.drink()


3、 init方法


3.1 iniit 初始化方法


init就是对象的初始化⽅法, init 是对象的内置⽅法。


当使⽤ 类名() 创建对象时,会自动执⾏以下操作:


  1. 为对象在内存中分配空间 —— 创建对象 ;
  2. 系统自动调用⽅法( init ) .


# 定义Cat类
class Cat:
    def __init__(self):
        self.name = '小白'
 
    def eat(self):
        print(self.name + "吃饭")
 
    def drink(self):
        print(self.name + "喝水")
 
 
# 创建Cat 类 初始化方法被自动调用
cat = Cat();
# 调用Cat 吃饭的方法
cat.eat();
# 调用Cat 喝水的方法
cat.drink()


带有参数的初始化方法。


4、del 方法


  1. del方法只能有一个参数 self;
  2. 当对象在内存中被销毁的时候,del方法被系统自动调用;
  3. 当使⽤ 类名() 创建对象时,为对象分配完空间后,⾃动调⽤ init ⽅法 ;
  4. 当⼀个对象被从内存中销毁前,会⾃动调⽤ del ⽅法 ;
  5. ⼀个对象的 del ⽅法⼀旦被调⽤,对象的生命周期结束 。


# 定义Cat类
class Cat:
    def __init__(self,name = "小白"):
        self.name = name
 
    def __del__(self):
        print(self.name+"活动已结束,已回窝睡觉")
 
    def eat(self):
        print(self.name + "吃饭")
 
    def drink(self):
        print(self.name + "喝水")
 
 
# 创建Cat 类
cat = Cat();
# 调用Cat 吃饭的方法
cat.eat();
# 调用Cat 喝水的方法
cat.drink()


在函数内定义的变量,函数执行完毕,变量就被销毁了;


在函数外部定义的变量,程序执行完毕,变量就被销毁了;


5、str 方法


在 Python 中,使⽤ print 输出 对象变量,默认情况下,会输出这个变量 引⽤的对象是由哪⼀个类创建的对象,以及在内存中的地址(⼗六进制表示)。


# 定义Cat类
class Cat:
    def __init__(self,name = "小白"):
        self.name = name
 
 
# 创建Cat 类
cat = Cat();
# 打印
print(cat)
 
#显示的结果  <__main__.Cat object at 0x000001FCB5A49668>


如果在开发中,希望使⽤ print 输出对象变量时,能够打印⾃定义的内容, 就可以利⽤ str 这个内置⽅法了。


注: str ⽅法必须返回⼀个字符串


# 定义Cat类
class Cat:
    def __init__(self,name = "小白"):
        self.name = name
 
    def __str__(self):
        return "我是一只猫,名字叫"+self.name
 
 
# 创建Cat 类
cat = Cat();
目录
相关文章
|
3天前
|
Python
python-面向对象
python-面向对象
18 2
|
3天前
|
Python
Python中的面向对象
【5月更文挑战第4天】面向对象编程(OOP)是Python的核心,涉及类与对象、封装、继承和多态。类是对象的模板,对象则是类的实例。例如,`Person`类有`__init__`构造方法和`greet`方法。
15 3
|
3天前
|
算法 Python
Python面向对象oop编程(二)
Python面向对象oop编程(二)
|
3天前
|
数据安全/隐私保护 Python
python基础之面向对象
面向对象编程(OOP)是一种以对象为中心的编程范式,通过对象和类实现现实世界的抽象。对象是程序的基本单元,类是对象的模板。主要特点包括:封装,通过访问修饰符隐藏对象内部细节,保证数据安全;继承,子类继承父类属性和方法,实现代码复用;多态,同方法调用在不同对象上产生不同行为,增强灵活性。示例代码展示了Python中的类定义、封装、继承和多态概念。
|
3天前
|
Java 程序员 Python
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
python学习13-面向对象的三大特征、特殊方法和特殊属性、类的浅拷贝和深拷贝
|
3天前
|
开发者 Python
「Python系列」Python面向对象
Python 是一种面向对象的编程语言,它提供了类和对象的概念来组织和封装代码。面向对象编程(Object-Oriented Programming,简称 OOP)是一种编程范式,它使用“对象”来设计软件和应用程序。对象是由数据和可以对这些数据执行的操作(即方法)组成的实体。
23 5
|
3天前
|
Python
python基础篇:python面向对象有哪些魔术方法?具体有什么用?
python基础篇:python面向对象有哪些魔术方法?具体有什么用?
18 1
|
3天前
|
Python
Python面向对象(九)
Python面向对象(九)
18 0
Python面向对象(九)
|
3天前
|
Python
07 Python面向对象的三大特点【封装、继承、多态】
07 Python面向对象的三大特点【封装、继承、多态】
9 0
|
3天前
|
Java 程序员 数据安全/隐私保护
Python教程第6章 | Python面向对象
Python面向对象概念、类的定义和调用、类方法、修改和增加类属性、类和对象、初始化函数、类的继承、类的多态、类的访问控制
46 0