[问题] 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