1. 程式人生 > >python編程基礎之三十三

python編程基礎之三十三

對象屬性 ide () -- 技術分享 con gdi 地址 end

構造方法:

  • 目的:構造方法用於初始化對象,可以在構造方法中添加成員屬性

  • 觸發時機:實例化對象的時候自動調用

  • 參數:第一個參數必須是self,其它參數根據需要自己定義

  • 返回值:不返回值,或者說返回None,不應該返回任何其他值

技術分享圖片
1 def __init__(self,arg1,arg2....):
2         函數體
3 #參數:arg1,agr2...根據需要自己定義
4 #如果自己不定義構造方法,系統自動生成一個構造函數
5 def __init__(self):
6   pass
View Code

如果自己沒有寫構造方法,系統會自動生成一個構造方法,裏面除了self,沒有任何參數,

技術分享圖片
 1 class Dog(object):
 2     def __init__(self,name,kind,age):
 3         self.name = name  #定義對象屬性,這個類所有的對象都具有該屬性
 4         self.kind = kind  #成員屬性必須通過self.引用,否則是普通變量
 5         self.age = age
 6 
 7     def bark(tmp):
 8         print(我是小可愛)
 9 
10 dingding = Dog(大黃,泰迪,3)
11 print(我是可愛的%s犬,%s,我今年%d歲了
% (dingding.kind, dingding.name, dingding.age))
View Code

析構方法:

  • 目的:對象銷毀時,釋放資源

  • 時機:對象銷毀時由系統自動調用

  • 參數:除了self外,沒有其他參數

  • 返回值:不返回值,或者說返回None。

1 def __del__(self): 2 #to do

技術分享圖片
 1 class Dog(object):
 2     #構造
 3     def __init__(self,name,kind,age):
 4         self.name = name
 5         self.kind = kind
6 self.age = age 7 #析構 8 def __del__(self): 9 print(拜拜了,二十年後又是一條好漢) 10 def bark(tmp): 11 print(我是小可愛--丁丁) 12 13 dingding = Dog(丁丁,泰迪,3) 14 print(我是可愛的%s犬,%s,我今年%d歲了 % (dingding.kind, dingding.name, dingding.age)) 15 del dingding #銷毀對象,自動調用析構方法 16 17 #在函數中對象,當函數結束運行時,自動析構 18 def test(): 19 td = Dog(當當,泰迪,3)
View Code

還介紹一個魔術方法比較常用:__str__()

這個魔術方法可以讓你定義的對象輸出的時候不會是一個地址了,看到的可以是你希望看到的字符串,

  • 目的:將對象轉化為字符串

  • 時機:凡是涉及對象向字符串轉換的都會調用

  • 參數:self

  • 返回值:字符串

技術分享圖片
 1 class Animal:
 2     def __init__(self,name,age):
 3         self.name = name
 4         self.__age =age
 5     def __str__(self):
 6         return "name : {} age : {}".format(self.name,self.__age)
 7     def __repr__(self):
 8         return  self.__str__()
 9 a1 = Animal(zhu,3)
10 print(a1)
11 print(我是一頭可愛的  + str(a1)
__str__()

python編程基礎之三十三