DevOps-Programming Basics with Python 17
接著會介紹在Python程式中的Object-oriented programming概念
也就是Python的:
1.Objects
2.Classes
這邊講師舉例Linkedin,網站上有許多"User",針對"User"可能定義以下資料
然後在網站上會有一些個人資料的操作,像是:
也就是會定義User的各種attributes,以及User的behavior
而User可能有成千上萬,所以會定義一個藍圖(BluePrint)
裡面就有上述那些attributes,behavior
而這個BluePrint即是Class
實際實施這些Class的則是Object
對應上面例子,class內就會定義User有哪些information及有哪些action
Create a Class
接著建立一個user.py來建立User的Class:
初步撰寫出以下Python的Constructor:
上面特別要注意的是self還要特地傳入建構子內
透過上述Class建立的即是Object,寫法會是如下:
tom = User("tt@tt.com","Tom","pwd","Developer")
接著針對動作的部分:
Create a Object:
建立User的物件如下:
這邊簡單多作一個Func使用來取得User資訊:
然後嘗試將底下建立的User Object的資訊透過上述Function印出
執行後看到:
也可以嘗試多呼叫變更title的Func.後再呼叫一遍印出User資訊的Func.
也可以建立另一個User物件:
這些邏輯會寫在其他py程式內
但是別的py檔案中如何使用User Class呢?
如同沿用其他py程式邏輯要import,這邊其實也是一樣
例如在main.py中使用變成:
也可以改成另一種寫法:
這時候執行main看到相同結果:
Create another Class and Objects:
建立一個post.py內容如下:
然後直接在main建立對應Object使用:
Object-oriented programming
即透過classes與objects如上方式撰寫程式
建立BluePrint(class)然後透過BluePrint建立Instance(Object)
Python is an object oriented programming language:
- 幾乎Python的東西都是Object(像是string,integer,float,list,set,dictionary),執行像是print(type("a str"))看到都會是<class 'str'>
- str(),int(),….are the constructor function, like str(50),int("10")
當前程式內容如下:
main.py:
user.py:
post.py: