python中一切皆物件 Python中一切皆物件

2021-10-25 20:23:49 字數 1945 閱讀 6493

1.python一切皆物件函式和類也是物件,屬於python的一等公民,體現在以下四點:

1.賦值給乙個變數

將函式賦值給乙個變數,對這個變數的操作實際上就是對這個函式的操作def say(name='superzjx'):

print(name)

my_func = say

my_func('superzjx')

class person:

def __init__(self):

print('init')

my_class = person

my_class()2.可以新增到集合物件中obj_list =

for item in obj_list:

print(item())3.可以作為引數傳遞給函式def print_type(item):

print(type(item))

obj_list =

for item in obj_list:

print_type(item)4.可以當作函式的返回值

函式作為函式的返回值,在python中是裝飾器的實現原理def decorator_func():

print('decorator start')

return say

my_dec = decorator_func()

my_dec('hello world')

2.type、class和object的關係1.type

type有兩種用法:生成乙個類、返回乙個物件的型別

type生成int,int生成1 type->int->1

type生成str,str生成'abc' type->str->'abc'

總結就是 type->class->object

以下也是適用 type->class->object邏輯

所以說我們的類是由type這個類生成的乙個類物件,平常熟悉的物件是由類物件建立的物件

因此,type和class的關係是 class是由type生成的

2.object

object是最頂層的基類

type是乙個類,同時type也是乙個物件

type的基類是object,object是由type類生成,type和object形成乙個環路

object的基類是個空

一起物件皆繼承object

type物件都是自身的例項(通過指標來實現)

3.python中常見的內建型別物件的三個特徵:身份(id)、型別、值

1.none(全域性只有乙個)

a 和 b 都指向python直譯器中唯一的none物件

2.數值:int、float、complex(複數)、bool

3.迭代型別

4.序列型別:list、bytes,bytearray,memoryview(二進位制)、range、tuple、str、array

5.對映型別:dict

6.集合型別:set、forzenset

7.上下文管理器:with

8.其他:模組型別、class型別、函式型別、方法型別、**型別、object型別、type型別、ellipsis型別、notimplemented型別(不需要掌握)

python中一切皆物件

動態語言和靜態語言的區別 函式和類也是物件,屬於python的一等公民 特性 定義乙個函式,並把這個函式賦值給乙個變數,此時這個變數可以作為乙個函式使用 defask name bobby print name my func ask my func bobby 定義乙個類,同樣可以使用這樣的操作,...

2 1 python中一切皆物件

慕課網課程 python高階程式設計和非同步io併發程式設計 函式和類也是物件,屬於python的一等公民 什麼叫一等公民呢,具備以下特性 1.賦值給乙個變數 2.可以新增到集合物件中 3.可以作為引數傳遞給函式 4.可以當做函式的返回值 def ask name bobby print name ...

如何理解python中一切皆物件?

在python中,函式和類也是物件,具有如下特點 1.可以賦值給乙個變數 將函式賦值給變數 def ask name bobby print name my func ask my func hello kitty 執行結果 hello kitty將類賦值給變數 class person def i...