類,class,用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站建設、成都外貿(mào)網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)洪澤免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
函數(shù),是組織好的,可重復使用的,用來實現(xiàn)單一,或相關聯(lián)功能的代碼段。
函數(shù)能提高應用的模塊性,和代碼的重復利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。
python語言中類和函數(shù)的區(qū)別是什么?
1、規(guī)則不同
類是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型;
函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實參)調(diào)用時函數(shù)名后的小括號中的實參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
2、主體不同
類是面向?qū)ο蟪绦蛟O計實現(xiàn)信息封裝的基礎;
函數(shù)是指一段在一起的、可以做某一件事的子程序。
3、特點不同
類是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型,每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類的實例稱為對象;
函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類中還可以定義構造函數(shù)、析構函數(shù)、拷貝構造函數(shù)、成員函數(shù)、友元函數(shù)、運算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。
python系統(tǒng)提供了下面常用的函數(shù):
1. 數(shù)學庫模塊(math)提供了很多數(shù)學運算函數(shù);
2.復數(shù)模塊(cmath)提供了用于復數(shù)運算的函數(shù);
3.隨機數(shù)模塊(random)提供了用來生成隨機數(shù)的函數(shù);
4.時間(time)和日歷(calendar)模塊提供了能處理日期和時間的函數(shù)。
注意:在調(diào)用系統(tǒng)函數(shù)之前,先要使用import 語句導入 相應的模塊
該語句將模塊中定義的函數(shù)代碼復制到自己的程 序中,然后就可以訪問模塊中的任何函數(shù),其方 法是在函數(shù)名前面加上“模塊名.”。
希望能幫到你。
dir() 函數(shù)
盡管查找和導入模塊相對容易,但要記住每個模塊包含什么卻不是這么簡單。您并不希望總是必須查看源代碼來找出答案。幸運的是,Python 提供了一種方法,可以使用內(nèi)置的 dir() 函數(shù)來檢查模塊(以及其它對象)的內(nèi)容。
dir() 函數(shù)可能是 Python 自省機制中最著名的部分了。它返回傳遞給它的任何對象的屬性名稱經(jīng)過排序的列表。如果不指定對象,則 dir() 返回當前作用域中的名稱
這個也是python彪悍的特性.
自省就是面向?qū)ο蟮恼Z言所寫的程序在運行時,所能知道對象的類型.簡單一句就是運行時能夠獲得對象的類型.比如type(),dir(),getattr(),hasattr(),isinstance().
反射機制就是在運行時,動態(tài)的確定對象的類型,并可以通過字符串調(diào)用對象屬性、方法、導入模塊,是一種基于字符串的事件驅(qū)動
通過源碼注釋我們知道,它返回對象是否具有指定名稱的屬性。而且它是通過調(diào)用getattr并捕獲AttributeError異常來判斷的。就像上面的屬性調(diào)用,我們就可以使用hasattr(a, "test")來判斷,通過源碼注釋我們也可以思考一下,eval這種是不是也可以實現(xiàn)這種方法呢?
但是這種方式是有缺陷的,因為test輸出了兩次,因為我們調(diào)用了兩次test(),這跟我們想要的效果不一樣。如果用hasattr呢,這個函數(shù)就不會在判斷的時候調(diào)用一次了。
有了判斷屬性是否存在的函數(shù),那么就得有獲取屬性的函數(shù)了.
從源碼注釋我們就能知道獲取object對象的名為name的屬性,想到與object.name,如果提供了default參數(shù),那么當屬性不存在的時候,就會返回默認值。同樣是上面的例子:
從例子中我們可以看出,hasattr并沒有調(diào)用test函數(shù),而且getattr獲取到的是函數(shù)對象,也沒有調(diào)用它,通過我們主動執(zhí)行func()才執(zhí)行了a.test()函數(shù),這樣相比于exec和eval就靈活了許多。
判斷和獲取屬性有了,那么設置屬性也是需要的.