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

类的定义

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

接下来尝试定义一个类:

class Person :
pass

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

此时在内存中的存放类似下图:
类的定义 | Python从入门到精通:高阶篇之二十二

定义变量

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

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

类的定义 | Python从入门到精通:高阶篇之二十二
此时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。

此时内存的变化如下:
类的定义 | Python从入门到精通:高阶篇之二十二
执行结果为:
类的定义 | Python从入门到精通:高阶篇之二十二

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

点击查看配套学习视频

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

上一篇:C# 设置textedit只能输入英文数字下划线,并且只能以英文开头(正则表达式)


下一篇:经典算法详解(1)斐波那契数列的n项