当前位置: 首页 > news >正文

Pycharm(十五)面向对象程序设计基础

目录

一、定义类及使用类的成员

二、self关键字介绍

三、在类内部调用类中的函数

class 类名:

        属性(类似于定义变量)

        行为(类似于定义函数,只不过第一个形参要写self)


一、面向对象基本概述

属性:名词,用来描述事物的外在特征的,例如:姓名,性别,年龄,身高,体重...

行为:动词,表示事物能够做什么,例如:学习,吃,睡...

类:抽象的概念,看不见,摸不着,类=属性+行为;

对象:类的具体体现,实现.

1.1 定义类的格式

class 类名:
        属性(类似于定义变量)
        行为(类似于定义函数,只不过第一个形参要写self)

如何使用类中的成员:

1.2 创建该类的对象.

对象名=类名()

1.3 通过 对象名.的方式来调用

对象名.属性

对象名.行为()

如下示例:

定义1个汽车类,具有跑的功能,并调用.

class Car():#属性#行为def run(self):print('汽车会跑!')
if __name__ == '__main__':c1=Car()c2=Car()c1.run()c2.run()print(f'c1:{c1}')print(f'c1.run:{c1.run}')print(f'c2:{c2}')print(f'c2.run:{c2.run}')

运行结果:

二、self关键字介绍

self是Python内置的一个属性,代表:本类当前对象的引用.

通俗解释:哪个对象调用函数,函数内的self就代表哪个对象; 谁调用,self就是谁.

用于函数内,区分不同对象的, 因为:

        汽车类的run()函数,c1对象能调用,c2对象也可以调用。 run()函数内部就可以通过self来区分到底是c1还是c2调用了该函数。

示例代码:

'''
self关键字介绍:概述:它是Python内置的一个属性,代表:本类当前对象的引用.通俗解释:哪个对象调用函数,函数内的self就代表哪个对象;谁调用,self就是谁.作用:用于函数内,区分不同对象的,因为:汽车类的run()函数,c1对象能调用,c2对象也可以调用。run()函数内部就可以通过self来区分到底是c1还是c2调用了该函数
'''
#1.定义汽车类
class Car:#汽车类内部,定义:行为(函数),表示具有:跑的功能def run(self):print('汽车具有跑的功能!')print(f'当前对象为:{self}')
if __name__ == '__main__':c1=Car()c2=Car()c1.run()print('-'*30)c2.run()print('-' * 30)print(f'c1:{c1}')print(f'c2:{c2}')

三、在类内部调用类中的函数

调用格式介绍:

        类外:对象名.的方式调用

        类内:self.的方式调用

函数内有self,表示:谁调用这个函数,self就是哪个对象;

简单理解:self=本类的对象

函数只有被调用,才会执行。

示例:定义汽车类,具有跑的功能run(),然后分别在 类内,类外调用run()函数。

class Car:def run(self):print('汽车会跑!...')def work(self):#2.1打印1句提示print('我是work()函数!')#2.2调用run()函数self.run()
if __name__ == '__main__':c1=Car()c1.run()print('-'*30)c1.work()

运行结果:

相关文章:

  • Linux 内核中 cgroup 子系统 cpuset 是什么?
  • 【专题刷题】滑动窗口(三)
  • 【系统架构设计师】嵌入式微处理器
  • 2025-04-22| Docker: --privileged参数详解
  • Ansys Zemax | 在 MATLAB 中使用 ZOS-API 的技巧
  • 最美丽的区间
  • Trino分布式 SQL 查询引擎
  • [Java · 铢积寸累] 数据结构 — 数组类型 - 概念引入
  • 【数据结构和算法】5. 堆栈和队列
  • 算法基础_数据结构【KMP + Trie 树 + 并查集 】
  • postgreSQL 如何使用 dblink
  • 微信小程序拖拽排序有效果图
  • 机器人进阶---视觉算法(六)傅里叶变换在图像处理中怎么用
  • 【Pytorch 中的扩散模型】去噪扩散概率模型(DDPM)的实现
  • Facebook商城开通全攻略:如何解决所在地区不可使用问题?
  • IPoIB驱动接收路径深度解析:从数据包到协议栈
  • 在Pytorch中使用Tensorboard可视化训练过程
  • 晨控CK-FR12与欧姆龙NX系列PLC配置EtherNet/IP通讯连接操作手册
  • Spring Boot多环境配置详解
  • GTS-400 系列运动控制器板(七)----修改限位开关触发电平
  • 世界地球日丨上海交响乐团牵手上海植物园,为“树”写交响曲
  • 新童谣童诗征稿活动在沪开启:设三个创作主题,面向全国征集
  • 三部门:对不裁员少裁员的参保企业实施稳岗返还政策至今年底
  • 民生访谈|“AI推广是把学生教聪明还是教笨了?这个问题必须回答好”
  • 同济研究生开发AI二维码走红拿下大奖,新一代00开发者掀起AI创业潮
  • 数智时代出版专业技能人才培养研讨会在沪举行