一:对象绑定方法与初始化
普通函数中:
函数: 普通函数 def 定义的函数,有几个参数就要传几个参数
类中的函数:
方法: 绑定给某个对象的,方法有特殊之处:绑定给谁,谁来调用
对象调用就会把对象传过来,传给self
二:对象绑定方法 实战
class Student:
def choose_course(self): 定义在类内部的函数,就是绑定给对象的方法
print('%s中国人,选课' % self.name) 谁来调用,这个name就是谁
s1 = Student()
s1.name = 'lqz' 自己名称空间加了name属性
s1.choose_course() 绑定给对象的方法,对象来调用,自动把对象传进去
s2 =Student()
s1.name = 'lqz' 自己名称空间加了name k:v
s1.choose_course() 绑定给对象的方法,对象来调用,自动把对象传进去
类可以调用方法吗?
答:可以调用 类来调用 就是个普通的参数 chppse_course就是个普通的函数
s1 Student()
s1.name = '李四'
Student.choose_course(s1)
eg:类可以调用对象的绑定方法,但是需要手动把对象传进来,现在choose_course就是个普通的函数,有几个参数,就要传几个参数
三:对象初始化
初始化:初级版
class Student:
def __init__(self):
print('init')
def choose_course(self):
print('选课')
student1 = Student() 只要是类实例化得到对象,就会自动触发__init__的执行
初始化:中级版
class Student:
def __innit__(self, name, age):
self.name = name
self.age = age
def choose_course(self):
print('选课')
student = Student(name='lqz', age=19) 这种初始化方法会触发类的__init__的执行,并把参数传入
print(student.name) 输出结果:lqz
egon = Student(name='egon', age=20) 这种初始化方法会触发类的__init__的执行,并把参数传入
print(agon.name) 输出结果:agon
初始化:终极版
class Student:
初始化 对象 赋值
def __init__(self, name, age)
self.name = name
self.age = age
def choose_course(self):
print('选课')
只要是类序列化得到对象,就会自动触发__init__的执行,这种初始化的方式会触发类的__init__的执行就会自动将参数传入
lqz = Student('lqz', 20)
print(lqz.name)