1. 程式人生 > 其它 >物件的繫結方法與初始化

物件的繫結方法與初始化

目錄
一:物件繫結方法與初始化
普通函式中:
	函式: 普通函式 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)