在python中可以把property動態的繫結的object的繼承類中,並且可以定義帶有引數的get和set方法。
比如,我們定義了全域性變數g,然後通過兩個方法來訪問g的內容
def get_g(self):
return g
def set_g(self, _g):
global g
g = _g
定義乙個object的繼承類a:
class a(object):
pass
然後可以通過setattr把乙個property動態的bind到a中:
setattr(a, 'g', property(get_g, set_g))
我們我們可能還要對動態bind做一些定製,比如我們可能有兩個全域性變數,g1和g2,希望在繫結時動態的決定到底是綁誰,那麼我們就可以這麼做:
def get_pp(name):
def get_g(self):
return globals()[name]
def set_g(self, _g):
globals()[name] = _g
return property(get_g, set_g)
然後可以setattr(a, 'g', get_pp('g1') ),從而把g1關聯到的a的『g』屬性。
C 中動態繫結
動態繫結 dynamic binding 將繫結 binding 即解析型別 成員和操作的過程從編譯時延遲到執行時。動態繫結適用於那些開發者知道某個特定的函式 成員或操作的存在,而編譯器不知道的情況。這種情況通常出現在操作動態語言 例如 ironpython 和com時。在這些情況下,如果不使用動態...
C 中動態繫結和靜態繫結
c 中,非虛函式都是靜態繫結,而虛函式卻是動態繫結。為了能夠更清楚地了解靜態繫結與動態繫結,我們可以看下面這個例子 include using namespace std class b 那麼兩次呼叫fun 函式是否相同呢?當然,如果d中沒有定義fun 函式 如例子中 那麼兩次呼叫的行為肯定會是一樣...
C 中動態繫結和靜態繫結
2009 03 27 15 35 1053人閱讀收藏 舉報c funclass 編譯器c c 中,非虛函式都是靜態繫結,而虛函式卻是動態繫結。為了能夠更清楚地了解靜態繫結與動態繫結,我們可以看下面這個例子 include using namespace std class b 那麼兩次呼叫fun 函...