python中一切皆對(duì)象

python中一切皆對(duì)象

  • python中的一切皆對(duì)象更加徹底
    在python中的一切皆對(duì)象比Java中的一切皆對(duì)象更加徹底叹哭,Java中有class钝诚,也就是類的概念,object是class的一個(gè)實(shí)例汤求。

函數(shù)和類也是對(duì)象

  • 可以賦值給一個(gè)變量
# 函數(shù)可以賦值給一個(gè)變量
def ask(name='sixkery'):
    print(name)

my_func = ask # 函數(shù)賦給變量
my_func() # 把函數(shù)當(dāng)變量來使用
控制臺(tái)輸出:
sixkery
# 類也可以賦值給一個(gè)變量
class Person():
    def __init__(self):
        print("sixkery")

my_func = Person # 類賦給變量
my_func() # 對(duì)變量的操作實(shí)例化
控制臺(tái)輸出:
sixkery
  • 可以添加到一個(gè)集合中
def ask(name='sixkery'):
    print(name)

class Person():
    def __init__(self):
        print("sixkery1")

obj_list = []
obj_list.append(ask)
obj_list.append(Person)
for item in obj_list:
    print(item())
控制臺(tái)輸出:
sixkery
None
sixkery1
<__main__.Person object at 0x03C88B70>

出現(xiàn)None是因?yàn)橐粋€(gè)函數(shù)沒有返回值會(huì)返回None,init返回一個(gè)類的對(duì)象桦他。

  • 可以作為參數(shù)傳遞給函數(shù)
  • 可以當(dāng)作函數(shù)的返回值
    函數(shù)可以返回一個(gè)函數(shù)實(shí)際上是python中的裝飾器的實(shí)現(xiàn)原理。
def ask(name='sixkery'):
    print(name)

def decorator_fubc():
    print('dec start')
    return ask

my_ask = decorator_fubc()
my_ask()
控制臺(tái)輸出:
dec start
sixkery

這樣就實(shí)現(xiàn)了一個(gè)函數(shù)訪問另一個(gè)函數(shù)霹期。

type叶组、object拯田、class 的關(guān)系

三者關(guān)系

圖中虛線代表實(shí)例關(guān)系历造,實(shí)線表示繼承關(guān)系,從這個(gè)圖中得出幾點(diǎn):

  1. list船庇、str吭产、dict、tuple鸭轮、type都繼承了object臣淤,所以object是最頂層的基類

  2. type是本身的對(duì)象(實(shí)例),object窃爷、list邑蒋、str、dict按厘、tuple都是type的對(duì)象医吊,所以type創(chuàng)建了所有的對(duì)象

  3. 綜合1、2可知逮京,一切皆對(duì)象的同時(shí)又繼承了object類卿堂,這就是python的靈活之處,Python的面向?qū)ο蟾訌氐?/p>

下面是驗(yàn)證的例子, #后面表示運(yùn)行結(jié)果
type創(chuàng)建了所有的對(duì)象

a = 1
print(type(a))   # <class 'int'>
print(type(int)) # <class 'type'>

type->int->1 即type類生成int懒棉,int類生成了1草描。

s = 'abc'
print(type(s))        # <class 'str'>
print(type(str))      # <class 'type'>

type->str->’abc’
所以type可以生成class(類), class生成obj(對(duì)象)

以上是內(nèi)置類,現(xiàn)在我們自己創(chuàng)建來看下策严。

class Student:
    pass

stu = Student()
print(type(stu))          # <class '__main__.Student'>
print(type(Student))      # <class 'type'>

結(jié)果和上面的情況一樣穗慕,type->Student->stu


class Student:
    pass

#Student繼承了最頂層的object同時(shí)Student又是type的對(duì)象
Student.__bases__         # <class 'object',>
print(type(Student))      # <class 'type'>

#type是自身的對(duì)象妻导,object是type的對(duì)象
print(type(type))        # <class 'type'>
print(type(object))      # <class 'type'>

#type繼承了object類揍诽,最頂層的object的基類為空
print(type.__bases__)      # <class 'object'>
print(object.__bases__)     # ()

python中的常見內(nèi)置類型

常見類型

對(duì)象的三個(gè)特征

  • 身份
    身份可以理解成在內(nèi)存中的地址诀蓉,可以通過 id() 函數(shù)查看某一個(gè)對(duì)象的身份,因?yàn)閷?duì)象是分配在內(nèi)存當(dāng)中的暑脆。相當(dāng)于指針指向?qū)ο蟆?/li>
a = 1
print(id(a)) # a 的地址 1493816368
b = []
print(id(b)) # b 的地址 134273344

  • 類型
    比如上方的 a 是 int 類型的渠啤,b 的類型是 list 。

  • 上方的 1 就是 a 的值添吗。

python 的類型

None(全局只有一個(gè))

python在解釋器啟動(dòng)的時(shí)候生成一個(gè)None 對(duì)象沥曹。

In [1]: a = None

In [2]: b = None

In [3]: id(a) == id(b)
Out[3]: True

這里 a 和 b 都指向python解釋器中唯一的一個(gè)None對(duì)象。

數(shù)值
  • int
  • float
  • complex(復(fù)數(shù))
  • bool(True/False)
迭代類型

可以用for循環(huán)來遍歷

序列類型
  • list
  • bytes碟联、bytearray妓美、memonyview(二進(jìn)制序列)
  • range
  • tuple
  • str
  • array
映射類型

dict 字典,有key-value

集合
  • set
  • frozenset(不可變類型)
上下文管理類型

也就是 with 語句

其他
  • 模塊類型鲤孵、 class和實(shí)例壶栋、 函數(shù)類型、方法類型普监、代碼類型贵试、object對(duì)象、type類型凯正、elipsis(省略號(hào)) 類型毙玻、notimplemented類型
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市廊散,隨后出現(xiàn)的幾起案子桑滩,更是在濱河造成了極大的恐慌,老刑警劉巖允睹,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件运准,死亡現(xiàn)場離奇詭異,居然都是意外死亡缭受,警方通過查閱死者的電腦和手機(jī)胁澳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贯涎,“玉大人听哭,你說我怎么就攤上這事√瘤ǎ” “怎么了陆盘?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長败明。 經(jīng)常有香客問我隘马,道長,這世上最難降的妖魔是什么妻顶? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任酸员,我火速辦了婚禮蜒车,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幔嗦。我一直安慰自己酿愧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布邀泉。 她就那樣靜靜地躺著嬉挡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汇恤。 梳的紋絲不亂的頭發(fā)上庞钢,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音因谎,去河邊找鬼基括。 笑死,一個(gè)胖子當(dāng)著我的面吹牛财岔,可吹牛的內(nèi)容都是我干的风皿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼使鹅,長吁一口氣:“原來是場噩夢啊……” “哼揪阶!你這毒婦竟也來了昌抠?” 一聲冷哼從身側(cè)響起患朱,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炊苫,沒想到半個(gè)月后裁厅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侨艾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年执虹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唠梨。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袋励,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出当叭,到底是詐尸還是另有隱情茬故,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布蚁鳖,位于F島的核電站磺芭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏醉箕。R本人自食惡果不足惜钾腺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一徙垫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧放棒,春花似錦姻报、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寒亥,卻和暖如春邮府,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溉奕。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國打工褂傀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人加勤。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓仙辟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鳄梅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叠国,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 包(lib)、模塊(module) 在Python中戴尸,存在包和模塊兩個(gè)常見概念粟焊。 模塊:編寫Python代碼的py...
    清清子衿木子水心閱讀 3,808評(píng)論 0 27
  • 如果說人生有什么最重要的東西项棠,那大概就是肆意生活的勇氣吧仗岖。 不論順流還是逆風(fēng)殴俱,都能按照自己的節(jié)奏空凸,...
    歡喜媽媽閱讀 1,731評(píng)論 0 0
  • 打卡 身心平衡一節(jié)課腹躁,記錯(cuò)時(shí)間了料按,12.30就開始了叔扼,遲到10分鐘 課后刽宪,跑步25分鐘摆昧,額頭汗珠落下停止 你不是你...
    池淺笑安然閱讀 198評(píng)論 1 0
  • 趁著陽光正好 伴著習(xí)習(xí)微風(fēng) 腳步變得輕巧 再見到你真好 還有難解的思念 還有回...
    乖乖的小小澈閱讀 167評(píng)論 0 4
  • 文/湘子 有一些苦難顿苇,在旁人看來好像是再正常不過的事峭咒,但深深沉浸在其中艱難掙扎的人,卻是步步驚心岖圈,咬著牙讹语,一步一步...
    湘子_2a53閱讀 367評(píng)論 0 0