Python(十)-面向过程,面向对象,类和对象

目录

面向过程

面向对象

两者的区别

面向对象的三大特性

类和对象

对象

self关键字

对象属性

类外面访问属性

类内部获取属性


面向过程

通俗的说,在解决编程问题时,我们会把需要的操作步骤都列出来,然后按照操作步骤编写代码,这就是面向过程的思想.

比如,要产生一个随机数,1)导入random模块2)产生随机数,3)输出结果

面向对象

面向对象是软件开发方法,一种编程范式。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

两者的区别

吃饭
面向过程: 买菜、洗菜、做饭菜、吃
面向对象: 点外卖 [厨师、外卖员]

-------------------------------------------------------------------------

打水
面向过程: 拿水杯、去清洗、装水、盖盖子、拿到教室
面向对象: 叫方哥给你打杯水.

------------------------------------------------------------------------

玩游戏
面向过程: [我]开机、打游戏、打、xxx、关机;  -我玩游戏
面向对象: 我叫人帮我玩游戏. [关注结果]

面向对象的三大特性

面向对象的三大特性:

(1)封装:简单地说,封装就是把对象的属性和方法放在一个整体中,并限制对属性和方法的访问操作。而这里说的整体,就是【类】。

(2)继承:通俗地说,当子类继承了父类后,子类就具有父类的属性和方法。比如,下图的关系。

(3)多态:不同类的对象对同一消息做出不同的响应。这里的发送消息,通常是指调用方法。

类和对象

类是抽象的概念,描述事物的特征

对象是具体的概念,表示实实在在存在的个体.

class 类名:
    def 方法名(self):
        代码1
        代码2
        ...
    # 其他方法...

例如,一起来完成:

(1)定义一个汽车类;

(2)让汽车类能跑起来;

(3)执行程序,观察效果。

class Car:
    def run(self):
        print("汽车能跑起来...")
# 当仅定义了后,执行程序没有效果

对象

# 创建对象的语法

对象名 = 类名()

--

# 调用方法语法

对象名.方法名()

例如,一起来完成:

(1)用对象模拟制造出一台小轿车;

(2)小轿车能跑起来;

(3)执行程序,观察效果。

class Car:
    def run(self):
        print("汽车能跑起来...")

# 1.创建对象
# 对象名 = 类名()
car = Car()
# 2.调用方法
# 对象名.方法名()
car.run()   # 不需要给self传递值

self关键字

self是一个Python关键字,在面向对象中,self指向了对象本身。比如,创建了一个学生对象。

# 定义类
class Student:
    pass

# 创建对象
student = Student()

例如,一起来完成:

(1)定义一个学生类,且学生在努力学习;

(2)创建一个对象,同时输出对象名、self,了解self的含义;

(3)再到学生类中,定义一个学生睡觉的行为,并分别通过对象名、self调用方法;

# 1.定义学生类  输出self
class Student:
    def study(self):  # 当前的,当前的对象
        print("=======================")
        print("正在努力学习!")
        print("===============",self)  # =============== <__main__.Student object at 0x0000028A576D2DF0>
        print("=======================")

    # 睡觉
    def sleep(self):
        # 类内部调用   self = 当前的对象
        # 对象名.方法名()
        # self.方法名()
        self.study()  

# 2.输出对象名
stu = Student()
print(stu)  # <__main__.Student object at 0x0000021CACD02DF0>
# 调用
stu.study()  # self = 当前的对象

对象属性

在现实生活中,属性就表示固有特征,比如:一辆小轿车的属性有轮胎数、颜色、品牌等。

仔细观察后会发现,属性可以简单理解为与生俱来的特征,比如一个人的姓名、年龄、身高、体重等都是属性。

而属性在Python面向对象中,直接使用变量来表示。

需要注意的是,一个对象通常包含两部分:方法、属性。

类外面访问属性

在类外面访问属性,分为:

(1)添加属性

(2)获取属性

# 添加属性语法

对象名.属性名 = 值

----

# 获取属性语法

对象名.属性名

例如

(1)在车类外设置品牌和颜色,和获取属性值并输出结果

class Car(object):
    def run(self):
        print(f"当前小轿车({self.color} 的 {self.brand})在公路上跑... ...")


if __name__ == '__main__':
    c1 = Car()
    # 设置当前对象 属性: 设置属性
    c1.brand = "五菱宏光"
    c1.color = "银色"

    # 调用当前对象的 属性: 获取属性
    print(c1.brand)
    print(c1.color)

    # 调用方法
    c1.run()

类内部获取属性

# 类内部,获取属性语法

self.属性

例如

在类外部添加2个属性,在类内部定义一个show()方法获取属性信息

class Car(object):
    def run(self):
        print(f"当前小轿车({self.color} 的 {self.brand})在公路上跑... ...")

    def show(self):
        print(f"{self.color} 的 {self.brand}")
        # return f"{self.color} 的 {self.brand}"

if __name__ == '__main__':
    c1 = Car()

    # 设置当前对象 属性: 设置属性
    c1.brand = "五菱宏光"
    c1.color = "红色"

    c1.show()

    # print(c1.show())

如果在类内部

print(f"{self.color} 的 {self.brand}")
则调用的时候

c1.show()

return f"{self.color} 的 {self.brand}"

则调用的时候

print(c1.show())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值