实例变量和函数
- 实例函数的定义
- 认识__init__函数
- 定义实例变量
- 实例函数中访问实例变量
- 外部访问实例变量与函数
实例函数的定义
定义实例函数
class Student:def say_hello(self, msg):print(f"hello{msg}")
实例函数属于对象
class Student:def say_hello(self, msg: str):print(f"Hello {msg}")def main():s1 = Student()s1.say_hello("hahaha")if __name__ == '__main__':main()
输出
Hello hahaha
这里定义了一个say_hello(self, msg: str)的实例函数,self是必须带的,只要是类的实例函数必须带这个参数,函数体中写的东西可以理解为具体的属性;必须有对象才能用。(执行哪个对象的实例函数)
这里语句可以理解为:
- 我先用Student()这个类创建了一个对象s1
- 在s1中有一个叫say_hello()的属性
- 调用s1的say_hello属性
认识__init__函数
__init__函数是用于初始化对象的实例函数
class Student:def __init__(self):print("doing initial stuff")s1 = Student()
实例:
class Student:def __init__(self, name: str): # 初始化,这里添加了一个name的属性self.name = name # 给这个对象定义一个属性,将参数中传过来的name赋值给这个属性def say_hello(self, msg: str):print(f"Hello {msg}, {self.name}")def main():# 1. create a physical object# 2. call __init__() to initialize this objects1 = Student("Jack")s2 = Student("Tom")s1.say_hello("111")s2.say_hello("222")if __name__ == '__main__':main()
python中可以动态添加对象的属性
s1.gender = 'male' # 直接添加在后面
print(s1.gender)
实例函数中访问实例变量
在实例函数中通过self访问实例变量
class Student:def __init__(self, name:str):self.name = namedef introduce():print(f"I'm {self.name}")s1 = Student("Jack")
s1.name = "Tom"
s1.introduce()
代码:
class Student:def __init__(self, name: str): # 初始化self.name = name # 给这个对象定义一个属性,将参数中传过来的name赋值给这个属性def say_hello(self, msg: str):print(f"Hello {msg}, {self.name}")def main():# 1. create a physical object# 2. call __init__() to initialize this objects1 = Student("Jack")s2 = Student("Tom")s1.say_hello("111")s2.say_hello("222")s1.gender = 'male'print(s1.gender)if __name__ == '__main__':main()
其实就是把细节包装起来,然后用一个固定的模式将函数中实现的功能给调用出来。
资料来源:【面向对象的Python编程-03.实例变量与函数】 https://www.bilibili.com/video/BV1GD4y187Nj/?share_source=copy_web&vd_source=0235d88ba3487903dc658fe856ba0135
UP:跟峰哥学编程