类的定义 | Python从入门到精通:高阶篇之二十二

简介: 类和对象都是对现实生活中或程序中的内容的抽象。实际上所有的事物都是由两部分组成:数据(属性)和行为(方法)。在类的代码块中,我们可以定义变量和函数,变量会成为该类实例的公共属性;函数会成为该类实例的公共方法。

类的定义

类和对象都是对现实生活中或程序中的内容的抽象。
实际上所有的事物都是由两部分组成:
1、数据(属性)
2、行为(方法)

接下来尝试定义一个类:

class Person :
pass

#创建Person的实例
p1=Person() #空的实例,没有内容
p2=Person()

此时在内存中的存放类似下图:
image.png

定义变量

在类的代码块中,我们可以定义变量和函数,变量会成为该类实例的公共属性,所有的该类实例都可以通过 对象.属性名 的形式访问。

class Person :
    name = 'swk'
p1 = Person()
p2 = Person()
print(p2.name)#访问的是‘swk’

image.png
此时name为公共属性,所有实例都可以访问。比如p2.name访问的就是swk这样一个名字。

定义函数

在类中也可以定义函数,类中的定义的函数,我们称为该类实例的公共方法。所有的该类实例都可以通过 对象.方法名() 的形式调用方法。

class Person :
    name = 'swk'
    def say_hello(a) :
        print('你好!')
p1 = Person()
p2 = Person()
#print(p2.name)
#调用方法:对象.方法名
p1.say_hello() # p1调用方法say_hello()

这里延伸一下方法调用和函数调用的区别

如果是函数调用,则调用时传几个参数,就会有几个实参。

但是如果是方法调用,默认传递一个参数,所以方法中至少要定义一个形参。所以要在方法say_hello()中定义一个参数,占位用的a。

此时内存的变化如下:
image.png
执行结果为:
image.png

注意:
方法调用时,第一个参数由解析器自动传递,所以定义方法时,至少要定义一个形参!!

点击查看配套学习视频

获取更多内容请订阅Python学习站官方技术圈!

相关文章
|
4天前
|
存储 程序员 API
Python 入门指南(五)(4)
Python 入门指南(五)
12 1
|
1天前
|
网络协议 网络架构 Python
Python 网络编程基础:套接字(Sockets)入门与实践
【5月更文挑战第18天】Python网络编程中的套接字是程序间通信的基础,分为TCP和UDP。TCP套接字涉及创建服务器套接字、绑定地址和端口、监听、接受连接及数据交换。UDP套接字则无连接状态。示例展示了TCP服务器和客户端如何使用套接字通信。注意选择唯一地址和端口,处理异常以确保健壮性。学习套接字可为构建网络应用打下基础。
18 7
|
2天前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
|
3天前
|
Python
Python-类视图和蓝图
Python-类视图和蓝图
10 2
|
4天前
|
存储 Java 数据安全/隐私保护
Python----类对象和实例对象
Python----类对象和实例对象
9 2
|
4天前
|
Python 索引 C语言
Python3从零基础到入门(2)—— 运算符-3
Python3从零基础到入门(2)—— 运算符
|
4天前
|
Python
Python3从零基础到入门(2)—— 运算符-2
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-2
|
4天前
|
Python C语言 存储
Python3从零基础到入门(2)—— 运算符-1
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-1
|
4天前
|
存储 C语言 Python
|
4天前
|
Python Windows