天天看點

如何了解python中一切皆對象?

在python中,函數和類也是對象,具有如下特點:

1.可以指派給一個變量

将函數指派給變量

def ask(name='bobby'):
    print(name)

my_func = ask
my_func('hello Kitty')
           

運作結果:

hello kitty
           

将類指派給變量:

class Person:
    def __init__(self):
        print('bobby')

my_class = Person
my_class()
           

運作結果:

bobby
           

2.可以添加到集合對象中

obj_list = []
obj_list.append(ask)
obj_list.append(Person)
for item in obj_list:
    print(item())
           

運作結果:

bobby #調用函數ask
None #print函數ask 因為ask沒有傳回值,是以傳回None
bobby  #調用類Person
<__main__.Person object at 0x0000015D311A7B50>  #print 類Person
           

3.可以作為參數傳遞給函數

上面已經可以展現函數和類可以作為參數傳遞的屬性,如obj_list.append(ask)

4.可以當作函數的傳回值

def decorator_func():
    print("dec start")
    return ask

my_ask = decorator_func()
my_ask('tom')
           

運作結果:

dec start
tom
           

這裡先調用decorator_func,傳回ask,并将參數'tom'傳遞給ask,其實這就是裝飾器的運作原理