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

目录

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

二、self关键字介绍

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

[class 类名:](#class 类名:)

属性(类似于定义变量)

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


一、面向对象基本概述

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

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

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

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

1.1 定义类的格式

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

如何使用类中的成员:

1.2 创建该类的对象.

对象名=类名()

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

对象名.属性

对象名.行为()

如下示例:

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

python 复制代码
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调用了该函数。

示例代码:

python 复制代码
'''
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()函数。

python 复制代码
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()

运行结果:

相关推荐
迅猛龙办公室5 分钟前
Python实现获取星期字符串
java·前端·python
wewowilling16 分钟前
Coze智能体入门 --- AI Agent开发入门--第一章
python·低代码·agent·零代码·coze
Wx-bishekaifayuan20 分钟前
springboot公考微信小程序35511-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
小猴子爱上树28 分钟前
跨马翻译:批量图片翻译+视频字幕+智能抠图,一站式跨境电商翻译工具
python·音视频
溪语流沙30 分钟前
【Web全栈进阶】OAuth实战——GitHub第三方登录
前端·python·github
计算机编程指导师33 分钟前
【计算机毕设选题】基于Hadoop的全球企业邮件安全合规数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·毕业设计·课程设计·企业邮件
SimonKing40 分钟前
零大模型依赖!SQLite FTS5 + jieba 打造纯本地知识库搜索
后端·python·程序员
慢云智慧空间41 分钟前
从智能终端到空间AI,慢云科技如何重新定义智慧人居?
人工智能·python·科技
yi0111 小时前
LeetCode 3. 无重复字符的最长子串|不定长滑动窗口:什么时候更新最大值?
笔记·python·算法·leetcode·双指针·滑动窗口
2601_962885721 小时前
如何用 Python 计算索提诺比率和卡玛比率?
开发语言·python