首页 > 编程语言 >Python面向对象基础

Python面向对象基础

时间:2024-10-08 19:47:54浏览次数:9  
标签:Python self 基础 面向对象 对象 print def 属性

文章目录

1. 什么是面向对象

1.1 常见的编程思想

编程思想就是:利用计算机来解决实际编程问题的一种思维方式。而编程思想是通用的,与计算机语言本身没有太大关系。
常见的编程思想有:
(1)面向过程
(2)面向对象
注意:Python同时支持面向过程和面向对象的编程语言!
在这里插入图片描述

1.2 面向过程是什么

面向过程是一种以过程为中心的编程思想。通俗地说,在解决编程问题时,我们会把需要的步骤都列出来,然后按照操作步骤写代码,这种思维就是面向过程思想。
说明:比如,要产生第一个随机数,步骤:
(1)导入random模块
(2)产生随机数
(3)输出结果
使用面向过程思维来了解:使用ATM机取钱的过程。
在这里插入图片描述

(1)带上银行卡,去ATM机所在的地方;
(2)排队等待;
(3)轮到自己了,把银行卡插入ATM机;
(4)输入密码,取钱;
(5)取钱成功。

1.3 什么是面向对象

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

# 学生:姓名、年龄 ;工作、赚钱
# 1. 先定义
class student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def work(self):
        print("好好工作")

    def money(self):
        print(f"{self.age}岁的{self.name}在努力赚钱... ...")


# 2. 后调用
stu = student("刘向阳",23)
print(stu.name)
print(stu.age)

#调用
stu.work()
stu.money()
# 总结:
# 1. 封装后的代码执行后不能立马有效果  ==抽象
# # 2. 一切皆对象:类 ==> 对象
# # 3. 类:包含两部分: 变量、方法

通俗地说,面向对象思想就是:当解决问题的视角不再是详细的操作步骤,而是另一个视角:操作对象。比如:操作手机打电话、操作电脑看电影等。
对象可以是:手机、电脑等一切事物。

面向对象思想优势:

(1)在现实生活中,所有事物都被看作是对象;

(2)面向对象的宗旨:模拟现实世界中的一切事物;

(3)贴近实际生活,给所有对象都赋予属性和方法,更加人性化。

1.4 封装

面向对象的三大特性
(1)封装
(2)继承
(3)多态
在现实生活中,也有很多与封装的案例。
比如,小刘是一个IT公司的程序员。

小刘身边的人了解小刘的隐私内容项
银行柜员身份证号、联系方式、银行卡号等。
同事姓名、职位、性别、年龄等。
爸妈血型、身份证号、女朋友姓名、性别等。

类似的,在Python面向对象中也有封装。
简单地说,封装就是把对象的属性和方法放在一个整体中,并限制对属性和方法的访问操作。而这里说的整体,就是【类】。

class 类名:
	def 方法名():
		属性1 = 值1
		属性2 = 值2
		...
	
	def 方法名2():
		执行代码1
		执行代码2
		...

例如,在下图日常生活中常见的画面,哪些可以封装成一个类?
在这里插入图片描述
一切皆对象

电脑
手机
数据线
...

1.5 继承

在现实生活中,继承一般指的是子女继承父辈的财产,比如:子承父业等。
在这里插入图片描述
类似的,面向对象继承也有继承父类的意思。当子类继承了父类后,子类就具有父类的属性和方法。
说明继承都满足:is-a关系。
在这里插入图片描述

1.6 多态

多态指的是:不同类的对象对同一消息做出不同的响应。这里的发送消息,通常是指调用方法。
通过生活案例来说明什么是多态,比如:电脑键盘上的F12功能键是固定不变的,但完成功能不同。

固定不变的F12功能键完成功能
F12在WPS办公软件使用时,提示用户保存文件。
F12在Notepad++编辑软件使用时,会把工作区间进行全屏显示。
F12在Chrome浏览器使用时,能进入到开发者模式。

2. 面向对象的概念

2.1 两个重要概念:类和对象

要掌握Python面向对象的特性,首先需要了解两个重要概念:类、对象。

我们通过公司职员-张三为例子来解释说明。
在这里插入图片描述
类是抽象的概念,指的是:对某些事物的描述。

对象是具体的概念,指的是:实实在在存在的个体。

2.2 类

类是抽象的概念,指的是:对某些事物的描述。简单地说,类就是一个模板。

定义Python类语法:

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

例如,一起来完成:

(1)定义一个学生类;

(2)让这个学生努力学习;

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

class student:
    def student(self):
        print("要努力学习")
# 当仅定义了后,执行程序没有效果

在这里插入图片描述

2.3 对象

对象是具体的概念,指的是:实实在在存在的个体。简单的说,对象就是通过类创建出来的实体。
创建对象语法:

  • 对象名 = 类名()
    调用方法语法:
  • 对象名.方法名()

说明:不用给self参数传递参数值。
例如,一起来完成:

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

(2)小轿车能跑起来;

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

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

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

在这里插入图片描述

2.4 self关键字

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

# 定义类
class Student:
    pass

# 创建对象
student = Student()

例如,一起来完成:

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

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

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

(4)执行程序,观察self的效果。

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

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

# 2.输出对象名
stu = Student()
print(stu)  
# 调用
stu.study()  # self = 当前的对象

3. 对象属性

3.1 什么是属性

在现实生活中,属性就表示固有特征,比如:一辆小轿车的属性有轮胎数、颜色、品牌等。
属性可以简单理解为与生俱来的特征,比如一个人的姓名、年龄、身高、体重等都是属性。
属性Python面向对象中,直接使用变量来表示。
需要注意的是,一个对象通常包含两部分方法属性
在这里插入图片描述

3.2 类外面访问属性

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

(1)添加属性

(2)获取属性
说明:要访问对象中的属性,需要使用.来操作。
在这里插入图片描述

  • 添加属性的语法:
    对象名.属性名 = 值
  • 获取属性语法:
    对象名.属性名

例如,一起来完成:
(1)在车类外设置车的颜色为红色、有4个轮胎;
(2)获取属性值并输出结果。

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

# 1.创建对象
car = Car()
# 2.添加属性
car.color = "红色"
car.number = 4
# 3.获取属性
print(f"颜色:{car.color}")
print(f"轮胎数:{car.number}")

3.3 类内部获取属性

在类内部获取属性语法:

self.属性

例如,一起来完成:

(1)在类外部添加2个属性:车颜色、车品牌;

(2)在类内部定义一个show()方法来获取属性值信息。

class Car:
    def run(self):
        print("汽车能跑起来...")
    # 定义方法
    def show(self):
        print(f"车颜色:{self.color}")
        print(f"车的品牌:{self.brand}")
       


car = Car()
# 外部设定值
car.color = "黑色"
car.brand = "BWM"
# 内部获取值
# 调用方法
car.show()

标签:Python,self,基础,面向对象,对象,print,def,属性
From: https://blog.csdn.net/m0_70882914/article/details/142745289

相关文章

  • 【新人系列】Python 入门(一):介绍及环境搭建
    ✍个人博客:https://blog.csdn.net/Newin2020?type=blog......
  • 计算机毕业设计 基于Hadoop的智慧校园数据共享平台的设计与实现 Python毕业设计 Pytho
    博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌......
  • python解释器配置
    python解释器配置Python解释器是一种程序,用于读取和执行Python代码。Python是一种高级编程语言,广泛应用于各种领域,包括web开发、数据科学、人工智能、自动化、科学计算等。Python解释器的核心作用是将Python代码转换成计算机可以理解和执行的形式。以下是Python......
  • 实验2 C语言分支与循环基础应用编程-1
    任务一#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1397#defineN2476#defineN321intmain(){intcnt;intrandom_major,random_no;srand(time(NULL));//以当前系统时间作为随机种子cnt=0;......
  • 面试-前端基础速刷-Vue
    1.Vue中computed和watch的区别两者用途不同啊!computed用于计算产生新的数据,watch用于监听现有数据。computed有缓存,methods没有缓存。computed有点儿像工厂模式(产生新的东西),watch像发布订阅模式。(是我目前的知识盲区)2.Vue组件通讯有几种方式,尽量全面❗父子组件上下级组件......
  • 2024年华为OD笔试机试E卷- 补种未成活胡杨 (java/c++/python)
    华为OD机试E卷2024真题目录(java&c++&python)本人习惯先看输入输出描述,可以明确知道哪些数据已知,需要去得到什么结果,再代入更有目的性地阅读题干内容,快速理解,所以把输入输出描述放在前面,你可以试下这样阅读对你是否有帮助。输入描述N总种植数量1≤N≤100000M......
  • 2024年华为OD笔试机试E卷- 关联子串 (java/c++/python)
    华为OD机试E卷2024真题目录(java&c++&python)本人习惯先看输入输出描述,可以明确知道哪些数据已知,需要去得到什么结果,再代入更有目的性地阅读题干内容,快速理解,所以把输入输出描述放在前面,你可以试下这样阅读对你是否有帮助。输入描述输入两个字符串,分别为题目中描述的......
  • 计算机毕业设计 基于Flask+vue的博客系统的设计与实现 Python毕业设计 Python毕业设计
    博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌......
  • JS基础总结
    JS基础总结WebAPI获取元素事件事件源的位置操作元素元素节点元素属性BOM对象操作元素综合示例(键盘移动活动表格)执行上下文和执行栈执行上下文执行上下文的特点执行上下文的生命周期执行栈作用域varletconst的区别作用域链作用域和值类型引用类型的值传递变量提升......
  • 如何写出Pythonic的代码?
    f-string、三元操作、各种解析式、生成器装饰器的熟练运用,“内库”引用和函数封装再加持PEP8,撰写的脚本不pythonic都难。......