python 反射四大函式介紹

2021-09-13 01:41:29 字數 2573 閱讀 3471

getattr()函式用於返回乙個物件屬性值。

getattr 語法:

getattr(object, name[, default])
返回物件屬性值或者方法的引用。

如果是返回的物件的方法,返回的是方法的記憶體位址,如果需要執行這個方法,

可以在後面新增一對括號。

>>> class test():

...     name="xiaohua"

...     def run(self):

...             return "helloword"

...>>> t=test()

>>> getattr(t, "name") #獲取name屬性,存在就列印出來。

'xiaohua'

>>> getattr(t, "run")  #獲取run方法,存在就列印出方法的記憶體位址。

>

>>> getattr(t, "run")()  #獲取run方法,後面加括號可以將這個方法執行。

'helloword'

>>> getattr(t, "age")  #獲取乙個不存在的屬性。

traceback (most recent call last):

file "", line 1, in

attributeerror: test instance has no attribute 'age'

>>> getattr(t, "age","18")  #若屬性不存在,返回乙個預設值。

'18'

hasattr()函式用於判斷物件是否包含對應的屬性。

hasattr 語法:

hasattr(object, name)
如果物件有該屬性返回 true,否則返回 false。

>>> class test():

...     name="xiaohua"

...     def run(self):

...             return "helloword"

...>>> t=test()

>>> hasattr(t, "name") #判斷物件有name屬性

true

>>> hasattr(t, "run")  #判斷物件有run方法

true

>>>

setattr()函式對應函式 getattr(),用於設定屬性值,該屬性不一定是存在的。

setattr() 語法:

setattr(object, name, value)
無。

>>> class test():

...     name="xiaohua"

...     def run(self):

...             return "helloword"

...>>> t=test()

>>> hasattr(t, "age")   #判斷屬性是否存在

false

>>> setattr(t, "age", "18")   #為屬相賦值,並沒有返回值

>>> hasattr(t, "age")    #屬性存在了

true

>>>

delattr()函式用於刪除屬性。

delattr(x, 'foobar') 相等於 del x.foobar。

delattr 語法:

delattr(object, name)
無。

#!/usr/bin/python

# -*- coding: utf-8 -*-

class coordinate:

x = 10

y = -5

z = 0

point1 = coordinate()

print('x = ',point1.x)

print('y = ',point1.y)

print('z = ',point1.z)

delattr(coordinate, 'z')

print('--刪除 z 屬性後--')

print('x = ',point1.x)

print('y = ',point1.y) # 觸發錯誤

print('z = ',point1.z)

輸出結果:

('x = ', 10)

('y = ', -5)

('z = ', 0)

--刪除 z 屬性後--

('x = ', 10)

('y = ', -5)

traceback (most recent call last):

file "test.py", line 22, in print('z = ',point1.z)

attributeerror: coordinate instance has no attribute 'z'

python函式講解 python的四大函式講解

python的四類函式 普通函式 預設函式 關鍵字函式 收集引數 普通函式 a.定義的時候直接定義變數名 b.呼叫的時候直接把變數或者值放入指定位置 def 函式名 引數 引數 函式體 呼叫 函式名 value1,value2.呼叫的時候,具體值參考的是位置,按位置賦值 引數的定義和使用 引數per...

python 四大函式功能及用法

map 功能 將第乙個引數 function 依次作用在引數可迭代物件中的每乙個元素上,返回包含每次 function 函式返回值的新迭代器 map function,iterable,function 函式,有兩個引數 iterable 乙個或多個可迭代物件 如 序列 返回值 python 3.x...

四大排序函式

row number over partition by clause order by filed asc desc 連續的從1開始到n的排序號 sql view plain copy rank over partition by clause order by filed asc desc 不連...