相关疑难解决方法(0)

没有Ambuguity的命名空间规范

为什么某些语言(如C++和Python)需要指定对象的命名空间,即使不存在歧义?我知道有这样的后门,比如using namespace x在C++或from x import *Python中.但是,当只有一个可访问的命名空间包含给定的标识符且不存在歧义时,我无法理解不希望语言只是"做正确的事"的理由.对我来说,这只是不必要的冗长和违反DRY,因为你被迫指定编译器已经知道的东西.

例如:

import foo  # Contains someFunction().

someFunction()  # imported from foo.  No ambiguity.  Works.
Run Code Online (Sandbox Code Playgroud)

比.

import foo  # Contains someFunction()
import bar  # Contains someFunction() also.

# foo.someFunction or bar.someFunction?  Should be an error only because
# ambiguity exists.
someFunction() 
Run Code Online (Sandbox Code Playgroud)

c++ python namespaces language-design

1
推荐指数
3
解决办法
575
查看次数

标签 统计

c++ ×1

language-design ×1

namespaces ×1

python ×1