python中一切皆物件是這個語言靈活的根本。
函式和類也是物件,屬於python的一等公民。
包括**包和模組也都是物件。
python的物件導向更加徹底。
可以賦值給乙個變數
可以新增到集合物件中
可以作為引數傳遞給函式
可以當作函式的返回值
在python中什麼不是物件?
字串是類str的物件
數字是類int的物件
元組是類tuple的物件
列表是類list的物件
字典是類dict的物件
函式是類function的物件
類是type的物件
將乙個函式當作返回值的時候就是閉包,也就是裝飾器的實現原理。
在python中,基礎的資料型別(list,tuple,dict等)都是使用c++編寫的,所以效能會非常高。
>>> a = 1在python中基礎資料型別有:字串、數字、元組、列表、字典、集合等>>>type(a)
'int
'>
>>>type(int)
'type
'>
>>> b = "
123"
>>>type(b)
'str
'>
>>>type(str)
'type
'>
>>> c = [1,2,3]
>>>type(c)
'list
'>
>>>type(list)
'type
'>
>>> d = (1,2,3)
>>>type(d)
'tuple
'>
>>>type(tuple)
'type
'>
>>> d =
>>>type(d)
'dict
'>
>>>type(dict)
'type
'>
它們分別由類str、int、tuple、list、dist、set例項出來的物件。
而類str、int、tuple、list、dist、set本身也是物件,它們都是由type這個創造創造出來的。
對於函式來說:
函式都是由類function創造出來的。
>>> def問題:function這個類是怎麼來的了?如果function是乙個物件,那麼為什麼不能使用type列印型別。func():
...
pass
...>>>type(func)
'function
'>
>>>type(func())
'nonetype
'>
>>>type(function)
traceback (most recent call last):
file
"", line 1, in
nameerror: name
'function'is
not defined
原因也許是function超出了type的範圍,因為它不是type創造的。類似的還有nonetype
對於類來說:
類都是由type創造出來
>>> class既然type創造了如此多的類,那麼type是怎麼來的?person:
...
pass
...>>>type(person)
'type
'>
>>> type(person()) #
物件由類建立
'__main__.person
'>
>>>type(type)在python中,type有兩個功能:'type
'> #
自己創造自己
a.列印物件的型別
b.創造類
雖然上述**並沒有解釋清楚一切物件的**,但是很多的說明了type和class的關係——「type就是用來創造類的」
>>> print(int.__bases__)(關於type、object、class之間的關係示意圖:'object
'>,)
>>> print(str.__bases__)(
'object
'>,)
>>> print(person.__bases__) #
預設繼承object
('object
'>,)
>>> class
anluperson(person):
...
pass
...>>> print(anluperson.__bases__)(
'__main__.person
'>,)
object是最頂層的基類。
>>> print(type.__bases__) #
type的父類是object
('object
'>,)
>>> type(object) #
object又是由type創造出來的
'type
'>
>>> print(object.__bases__)()
>>> type(type) #
type自己創造自己
'type
'>
在python中,基礎資料型別的類都是type的例項,type自生也是type的例項。
基礎資料型別的類都是繼承object。
對於function等先不管,我們可以說一切皆物件,一切都是type的物件,object是所有類的基類。
1.none 全域性只有乙個
2.數值
• int
• float
• complex
• bool
3.迭代型別
4.序列型別
• list
• bytes、bytearray、memoryview(二進位制序列)
• range
• tuple
• str
• array
5.對映(dict)
6.集合型別 dict與set實現原理相似,效能很高
• set
• frozenset
7.上下文管理型別(with)
8.其它
• 模組型別
• class和例項
• 函式型別
• 方法型別
• **型別
• object型別
• type型別
• ellipsis型別(省略號)
• notimplemented型別
python 一切皆物件
在python中有一句話 一切皆物件 其實在剛開始接觸python的時候對這句話完全不理解,即使是看完了python基礎教程也沒有很好的理解這句話的含義。直到看了python的原始碼才對這部分有了更深入的理解。我的入門指導書是 python原始碼剖析深度探索動態語言核心技術 在python中下列語句...
Python 一切皆物件
學習筆記 class dxiang def ff self print 這是物件的方法 one方法 def common canshu 定義乙個方法在類之外 print 這是乙個普通的方法的引數 canshu common 2 呼叫函式方法 dxiang.method common 類的方法增加乙個...
一切皆物件
description 一切都是物件 everything is an object。所以,現在定義乙個類thing,來描述世界上所有有名字的事物。該類只有建構函式 拷貝建構函式和析構函式,並具有乙個字串資料成員來儲存其名字。input 輸入只有1行,是乙個沒有空白符的字串。output 見樣例。s...