[問題] Python 有沒有類似 C++ ADL 的功能

作者: johnjohnlin (嗯?)   2015-10-26 20:35:26
想請問一下
C++ 某些情形下
會根據呼叫 class 自動幫參數塞 namespace 之類的
這個應該叫 ADL
像請問一下 Python 有沒有類似的作法?
想達到的效果大約如下
或是說 Python 裡面因為某些理由所以不太可能呢?
謝謝
class Cls:
a, b, c = range(3)
@staticmethod
def Method(n):
return n
print Cls.a # print 0
print Cls.Method(Cls.a) # print 0
print Cls.Method(a) # error
作者: tiefblau (tiefblau)   2015-10-26 20:49:00
不熟namespace 想請教這個會err的邏輯是啥?
作者: bibo9901 (function(){})()   2015-10-26 21:00:00
ADL是指根據argument選擇同個namespace裡function在這裡也是不成立的
作者: uranusjr (←這人是超級笨蛋)   2015-10-26 21:29:00
你根本沒搞懂 ADL 吧, 同樣的東西在 C++ 也行不通啊你想達成的東西從根本上違背了 namespacing, 不可能成立
作者: johnjohnlin (嗯?)   2015-10-28 11:25:00
嗯,我好像弄錯了ADL,畢竟平常用不太到其實我只是單純覺得要打兩次 Cls. 很麻煩,有沒有可以避免的手段?
作者: uranusjr (←這人是超級笨蛋)   2015-10-28 21:40:00
要看你想做什麼, 就你這個例子 Cls 的存在本身就很多餘直接宣告成 module-level function 與 variable 就好了

Links booklink

Contact Us: admin [ a t ] ucptt.com