一、反射物件的例項變數/繫結方法
import time
class perosn():
def __init__(self, name, birth):
self.name = name
self.birth = birth
@property
def age(self):
return time.localtime().tm_year - self.birth
mkc = perosn('mkc', 1993)
print(mkc.age)
# 反射的用法:
ret = getattr(mkc, 'age')
print(ret)
ret1 = getattr(mkc, 'name')
print(ret1)
二、反射類的靜態/其它方法
class person():
type = '人類'
def __init__(self, name, birth):pass
print(person.type)
print(getattr(person, 'type'))
三、反射模組的任意變數
用法:getattr(模組名, '變數名')
四、反射本模組/指令碼中任意變數
import sys
class person():
type = '人類'
def __init__(self, name, birth):
self.name = name
self.birth = birth
dic =
print(getattr(sys.modules['__main__'], 'dic'))
print(getattr(sys.modules['__main__'], 'person'))
Java 反射用法總結
簡單的來說,就是在程式執行時,獲取類所有屬性和方法資訊 還可以動態建立乙個物件,並且呼叫它的任意乙個方法 訪問和修改任意乙個屬性,包括private修飾的方法和屬性。獲得class物件的三種方法 child child new child class yclass child.getclass cl...
反射 反射的總結
就是得到class物件後,反向獲取物件的各種資訊 公有的,私有的等等 帶有declared修飾的方法可以反射到私有的方法,沒有declared修飾的只能用來反射公有的方法。其他的annotation field constructor也是如此。執行過程中操作各種類的物件。可以解耦,提高可拓展性。效能...
Python 反射的用法
在做程式開發中,我們常常會遇到這樣的需求 需要執行物件裡的某個方法,或需要呼叫物件中的某個變數,但是由於種種原因我們無法確定這個方法或變數是否存在,這是我們需要用乙個特殊的方法或機制要訪問和操作這個未知的方法或變數,這中機制就稱之為反射。接下記錄下反射幾個重要方法 判斷物件中是否有這個方法或變數 c...