原创 Python - @property 方法變屬性

@property @property是內置的裝飾器,與普通裝飾器原理是一樣的,只不過返回的不是函數,而是類對象. @property負責把一個方法變成屬性進行調用,保證對參數進行必要的檢查。 屬性有三個裝飾器:setter、gett

原创 __slot__ 限制

限制__slot__ 上一篇有提到通過動態綁定:在類外部定義方法,然後動態地給類加上新的功能,使得類的實例都能調用外部方法。但如果要限制實例的屬性,不允許動態地添加,該怎麼辦呢? 爲了達到限制的目的,python允許在定義class的時候

原创 類方法 和 外部方法

類方法:類內部定義的方法 外部方法:定義在類外的方法,但是帶上了self參數。 居於動態語言的靈活性,我們知道可以動態的給實例綁定屬性,那是否可以給實例綁定一個方法,成爲實例方法。例如: class Student(object)

原创 Python 繼承 和 多態

一、繼承 繼承的概念 在面向對象程序設計中,當我們定義一個類class的時候,可以從某個現有的class繼承,新的class稱爲子類(Subclass),而被繼承的class稱爲基類、父類或超類(Base class、Super clas

原创 Python作用域 全局|局部|global

在使用變量的時候,有時候會發生變量引用錯誤,或者程序運行完,程序得到的結果與預期存在差別。 記住一條原則:任何變量在使用前,都必須確保“變量引用是否明確”! 全局變量:作用域是整個腳本,除非被刪除掉,否則他們存活到腳本結束,且對於所有

原创 Python 訪問限制 private public

一、知識點 在一個模塊中,我們可能會定義很多函數和變量。但有的函數和變量我們希望能給別人使用,有的函數和變量我們希望僅僅在模塊內部使用,so?我們可以通過定義該函數、變量是公開的還是私有的來達到該目的。在Python中,是通過下劃線“_”

原创 Python的 函數、類方法、實例方法、靜態方法

一、知識點^_^ 函數:我一般習慣把跟類無關叫成函數,而類裏面實現的叫方法。 類方法:也叫類型方法,在該方法上一行,用@classmethod進行標記。 第一個參數強制爲cls,類對象。可以通過這個類對象訪問類屬性,由於沒有傳入類實

原创 Python 類的屬性與實例屬性

放假歸來 ~~~ 一、概念 類對象:類名 實例對象:通過類創建的對象 類屬性:類對象所擁有的屬性。歸類所有,被類對象和實例對象所共有。 類的公有屬性可以在類外被訪問。 實例屬性:實例對象所特有的屬性,類對象不能擁有,即不能通過類對象調

原创 Python面向對象編程 - 類和實例

一、preface 面向對象編程OOP:object oriented programming。OOP把對象作爲程序的基本單元,一個對象包含了數據和操作數據的函數。Python是一門面向對象的編程語言,通過對象實現對方法的調用。 面向過程

原创 【自動化測試】發送郵件 SMTP

如何使用Python將生成的測試報告以郵件附件的形式進行發送呢? 一、概要 SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式

原创 【自動化測試】Python 訪問 mysql數據庫

一、準備工作 1、確保Python環境已安裝mysql,py3.*版本:pip install PyMySQL PyMySQL是在Python3.x中用於連接MySQL服務器的一個庫。 2、已經創建了數據庫testDB,相關表table,

原创 Python - 模塊module

一、什麼是模塊 Python中,一個.py文件就稱之爲一個模塊。那麼使用模塊有什麼好處呢? (1)提高了代碼的可維護性。(2)代碼不必從零開始,當一個模塊編寫完畢後,就可以被其他地方應用。(3)可以避免函數名和變量名衝突,相同的函數名和變

原创 Python 函數式編程 - 高階函數

Functional Programming,函數式編程。Python對函數式編程提供部分支持。對於純函數編程,對任一函數,只要輸入是確定的,輸出就是確定的,可稱之爲無副作用。 一、高階函數 1、變量指向函數 我們知道函數的計算結果可