目录
一、基本介绍
1、基本介绍
类除了有一些属性外,还会有一些行为,比如人类有年龄、姓名等属性,我们人类还有一些行为比如:可以说话、跑步...,通过学习,还可以做算术题。这时就要用成员方法才能完成。
2、定义类的基本语法
class 类名:
属性...
行为...
类中定义的行为(函数),我们称为:成员方法/方法
二、成员方法的定义和使用
1、成员方法的定义
在类中定义成员方法和前面学习过的定义函数,基本上是一样的(原理和运行机制是一样的),但是还是有点不同(形式上有不同)
定义成员方法的基本语法:
def 方法名(self,形参列表):
方法体
1)在方法定义的参数列表中,有一个self
2)self是定义成员方法时,需要写上的
3)self表示当前对象自身
4)当我们通过对象调用方法时,self会隐式的传入
5)在方法内部,需要使用self,才能访问到成员变量
2、案例演示
class Person:
# 属性(成员变量)
name =None
age=None
# 成员方法
# 添加hi成员方法,输出"hi python"
def hi(self):
print("hi python")
# 添加cal01成员方法,可以计算从1+...+1000的结果
def cal01(self):
result=0
for i in range(1, 1001):
result+=i
print("result=",result)
# 添加cal02成员方法,该方法可以接收一个数n,可以计算从1+...+n的结果
def cal02(self,n):
result=0
for i in range(1, n+1):
result+=i
print("result=",result)
# 添加get_sum成员方法,可以计算两个数的和,并返回
def get_sum(self,n1,n2):
return n1+n2
# 完成测试
p=Person()
# 通过对象名.方法名()调用方法
p.hi()
p.cal01()
p.cal02(10) # 55
print(p.get_sum(10, 20)) # 30
三、使用细节
Python也支持对象动态的添加方法
# 函数
def hi():
print("hi python")
# 定义类
class Person:
name=None
age=None
def ok(self):
pass
# 创建了对象p和p2
p=Person()
p2=Person()
"""
1、动态的给p对象添加方法m1,注意只是针对p对象添加方法
2、m1是你新增加的方法名,由程序员指定名字
3、m1方法和函数hi关联起来,当调用m1方法时,会执行hi函数
"""
p.m1=hi
# 调用m1(即hi)
p.m1()
print(type(p.m1),type(hi)) # function
print(type(p.ok)) # method
# 因为没有动态的给p2添加方法,会报错
# p2.m1()