面向对象 ② ( 类的定义和用法 | 类成员方法 | 类成员方法定义语法 | self 关键字 )
最编程
2024-05-26 17:05:55
...
一、类的定义和使用
1、类定义
类的定义语法 : Python 中 定义类的语法 如下 ;
class 类名:
类的属性成员
类的函数成员
- 类声明 : Python 中 使用 class 关键字 定义类 , class 关键字后是 类名称 , 之后是冒号 ,
-
类成员 : 类的属性和方法 在
class 类名:
下面的行 , 有 4 空格缩进 ;- 类的属性成员 就 是 在类 中定义的 成员变量 ;
- 类的函数成员 就 是 在类 中定义的 成员方法 ;
2、创建类对象
创建 Python 类实例对象 语法 :
实例对象 = 类名()
二、类的成员方法
1、类成员方法简介
类 中 定义的 属性 , 是 成员变量 , 用于记录数据 ;
类 中 定义的 函数 , 是 成员方法 , 用于记录行为 ;
类的成员方法 , 就是 在 类 中定义的 函数 , 在该 函数 中 , 可以调用 类的成员变量 , 以及 本类中其它的成员方法 ;
2、类成员方法定义语法
类成员方法定义 与 普通方法 定义 类似 , 除了 参数列表第一个必须是 self 之外 , 其它都一样 ;
类成员方法定语语法 :
def 方法名(self, 形参1, 形参2, ... , 形参n)
方法体
类成员方法的第一个参数必须是 self 关键字 ;
self 表示 类实例对象 自身 ;
当使用 类实例对象 调用方法时 , self 会被自动传入该方法 , 不需要开发者手动传入参数 ;
在 类 成员方法内部 , 可以通过 self 访问类的成员变量 ;
self 只是写在 成员方法定义 的位置 , 在实际调用时 , 实参不传入这个参数 ;
如 : print 函数 , 第一个参数也是 self , 但是实际调用该函数打印数据时 , 直接传入 args 参数即可 ;
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
"""
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
将值打印到流或sys。默认为标准输出。
可选关键字参数:
File:类文件对象(流);默认为当前的sys.stdout。
Sep:值之间插入的字符串,默认为空格。
结束:最后一个值后面附加的字符串,默认为换行符。
Flush:是否强制刷新流。
"""
pass
三、代码示例 - 类的成员方法
类的成员方法 , 如果没有参数 , 只需要定义一个 self 参数即可 ,
如 : 定义 def info(self):
函数 , 调用该函数时 , 可以使用 s.info()
函数 , 实参不传入任何参数 , 系统自动传入本对象作为 self 参数 ;
代码示例 :
"""
面向对象 代码示例
"""
class Student:
name = None # 姓名
age = None # 年龄
def info(self):
print(f"姓名 : {self.name} , 年龄 : {self.age}")
s = Student()
s.name = "Tom"
s.age = 18
s.info()
执行结果 :
D:\001_Develop\022_Python\Python39\python.exe D:/002_Project/011_Python/HelloPython/Hello.py
姓名 : Tom , 年龄 : 18
Process finished with exit code 0
推荐阅读
-
C++ 中的抽象类和抽象方法
-
Spring Boot:中小型医院网站开发的新趋势
-
python 机器人编程 - 使用 python API 调用控制 wifi 小车的示例程序
-
元素将时间和日期框设置为早于当前时间和日期,以禁用
-
C++ 类和对象 - 通过 4 级考试
-
OpeneBayes 教程 | LLaVA-OneVision,一个强大的开源多模态宏模型,可击败 GPT-4V,现已上线!
-
在 Anaconda 虚拟环境中安装 cuda 和 pytorch
-
Golang 并发编程入门:Goroutine 简介和基本用法
-
压缩从后端到前端的返回数据的注释方式--方案
-
三握四挥的顺序到底是怎样的?