标签: namespaces

在多个文件上拆分Clojure命名空间

在进行提前编译时,是否可以在多个源文件上拆分Clojure命名空间:gen-class?怎么做(:main true)(defn- ...)发挥?

namespaces compilation clojure

89
推荐指数
1
解决办法
9765
查看次数

C#名称空间别名 - 有什么意义?

我一直在努力学习更多关于C#语言的知识,但是我还没有看到一个人会使用命名空间别名的情况.

 using someOtherName =  System.Timers.Timer;
Run Code Online (Sandbox Code Playgroud)

在我看来,它只会增加对理解语言的困惑.有人可以解释一下.

谢谢

c# namespaces

88
推荐指数
6
解决办法
5万
查看次数

导入模块中全局变量的可见性

我在Python脚本中遇到了一些导入模块的问题.我将尽我所能来描述错误,为什么我遇到它,以及为什么我要用这种特殊的方法来解决我的问题(我将在一秒钟内描述):

假设我有一个模块,我在其中定义了一些实用函数/类,它们引用了将在其中导入此辅助模块的命名空间中定义的实体(让"a"成为这样的实体):

模块1:

def f():
    print a
Run Code Online (Sandbox Code Playgroud)

然后我有主程序,其中定义了"a",我想导入这些实用程序:

import module1
a=3
module1.f()
Run Code Online (Sandbox Code Playgroud)

执行程序将触发以下错误:

Traceback (most recent call last):
  File "Z:\Python\main.py", line 10, in <module>
    module1.f()
  File "Z:\Python\module1.py", line 3, in f
    print a
NameError: global name 'a' is not defined
Run Code Online (Sandbox Code Playgroud)

过去(两天前,呃)已经提出类似的问题,并提出了几种解决方案,但我并不认为这些问题符合我的要求.这是我的特定背景:

我正在尝试创建一个连接到MySQL数据库服务器并使用GUI显示/修改数据的Python程序.为清洁起见,我在一个单独的文件中定义了一堆辅助/实用的MySQL相关函数.但是它们都有一个公共变量,我最初实用程序模块中定义了它,它是MySQLdb模块中的游标对象.后来我意识到应该在主模块中定义游标对象(用于与数据库服务器通信),这样主模块和导入其中的任何东西都可以访问该对象.

最终结果将是这样的:

utilities_module.py:

def utility_1(args):
    code which references a variable named "cur"
def utility_n(args):
    etcetera
Run Code Online (Sandbox Code Playgroud)

我的主要模块:

program.py:

import MySQLdb, Tkinter
db=MySQLdb.connect(#blahblah) ; cur=db.cursor()  #cur is defined!
from …
Run Code Online (Sandbox Code Playgroud)

python namespaces python-2.6 python-import mysql-python

88
推荐指数
4
解决办法
13万
查看次数

R:在自编写的包中使用magrittr管道运算符

我想在我自己编写%>%magrittr包中使用包中引入的管道运算符来链接dplyr数据转换.magrittrImportDESCRIPTION文件中.加载我自己的包并测试使用管道操作符的函数后,我收到以下错误消息:

functionname中的错误(参数,:找不到函数"%>%"

更改%>%magrittr::%>%函数源代码也无济于事,因为无法再构建包.

namespaces r magrittr

88
推荐指数
4
解决办法
1万
查看次数

定义的所有功能于一身.R文件,从另一个.R文件调用它们.如果可能的话怎么样?

如何调用另一个文件中abc.R文件中定义的功能,说xyz.R?

甲补充问题是,如何调用从R提示/命令行中abc.R定义的函数?

scope namespaces r file user-defined-functions

87
推荐指数
1
解决办法
8万
查看次数

为什么一个未命名的命名空间是静态的"优越"替代品?

C++标准中的$ 7.3.1.1/2节描述如下:

在声明命名空间作用域中的对象时,不推荐使用static关键字; unnamed-namespace提供了一个更好的选择.

我不明白为什么一个未命名的命名空间被认为是一个更好的选择?理由是什么?我已经知道标准的内容很长一段时间,但我从未认真考虑过,即使我回答这个问题:未命名的命名空间优于静态?

它是否被认为是优越的,因为它也可以应用于用户定义的类型,正如我在回答中所描述的那样?还是有其他原因,我不知道?我问这个问题,特别是因为这是我在答案中的推理,而标准可能会考虑其他因素.

c++ standards iso namespaces

86
推荐指数
3
解决办法
3万
查看次数

是否有更好的方法在标头中用C++表示嵌套命名空间

我从C++切换到Java和C#,并认为命名空间/包的使用在那里(结构良好)更好.然后我回到C++并试图以相同的方式使用命名空间,但在头文件中所需的语法是可怕的.

namespace MyCompany
{
    namespace MyModule
    {
        namespace MyModulePart //e.g. Input
        {
            namespace MySubModulePart
            {
                namespace ...
                {
                    public class MyClass    
Run Code Online (Sandbox Code Playgroud)

以下内容对我来说也很奇怪(避免深度缩进):

namespace MyCompany
{
namespace MyModule
{
namespace MyModulePart //e.g. Input
{
namespace MySubModulePart
{
namespace ...
{
     public class MyClass
     {
Run Code Online (Sandbox Code Playgroud)

是否有更短的方式来表达上述事情?我错过了类似的东西

namespace MyCompany::MyModule::MyModulePart::...
{
   public class MyClass
Run Code Online (Sandbox Code Playgroud)

更新

好吧,有人说Java/C#和C++中的使用概念是不同的.真?我认为(动态)类加载不是命名空间的唯一目的(这是一个非常技术性的推理视角).为什么我不应该将它用于可读性和结构化,例如想到"IntelliSense".

目前,命名空间与您可以在其中找到的内容之间没有逻辑/粘合剂.Java和C#做得更好......为什么要包含<iostream>和拥有命名空间std?好吧,如果你说的逻辑应该依靠头部以包括,为什么#包括不使用的"智能感知"友好的语法像#include <std::io::stream><std/io/stream>?我认为与Java/C#相比,缺省库中缺少的结构化是C++的一个弱点.

如果狂热冲突的唯一性是一个Point(这也是C#和Java的一个点),一个好主意是使用项目名称或公司名称作为命名空间,你不这么认为吗?

一方面它说C++是最灵活的...但每个人都说"不要这样做"?在我看来,C++可以做很多事情,但是在很多情况下,与C#相比,即使是最简单的事情也会有一种可怕的语法.

更新2

大多数用户认为创建比两个级别更深的嵌套是无稽之谈.好的,那么Win8开发中的Windows :: UI :: Xaml和Windows :: UI :: Xaml :: Controls :: Primitives名称空间呢?我认为微软对名称空间的使用是有道理的,它确实比仅仅2级更深.我认为更大的库/项目需要更深层次的嵌套(我讨厌像ExtraLongClassNameBecauseEveryThingIsInTheSameNameSpace这样的类名...那么你也可以将所有东西放到全局命名空间中.)

更新3 - …

c++ syntax namespaces

85
推荐指数
6
解决办法
5万
查看次数

命名空间和具有相同名称的类?

我正在组织一个库项目,我有一个名为的中央管理器类,Scenegraph以及生活在Scenegraph命名空间中的一大堆其他类.

我真的很想对场景图是MyLib.Scenegraph和其他类为MyLib.Scenegraph.*,但似乎这样做将是使所有其他类的内部类的唯一途径Scenegraph在Scenegraph.cs文件,这只是太笨拙.

相反,我已经将它组织为,Mylib.Scenegraph.Scenegraph并且MyLib.Scenegraph.*,哪种工作,但我发现Visual Studio在某些条件下会混淆我是否指的是类或命名空间.

有没有一种很好的方法来组织这个软件包,这样对于用户来说很方便,而不会在一个难以维护的混乱中将我的所有代码组合在一起?

c# namespaces class

85
推荐指数
8
解决办法
6万
查看次数

Visual Studio 2010突然看不到命名空间?

我的C#WinForms解决方案有两个项目.一个DLL,它是我正在研究的主要项目,以及一个可执行的WinForms,我称之为"Sandbox",这样我就可以一次性轻松地编译/运行/调试DLL.

我在两个项目的.Net 4.0工作.

一切都工作正常,直到我添加了一些看似无辜的代码,并在DLL中引用了System.Web.现在我的Sandbox项目无法看到DLL项目的命名空间.我没有改变任何我认为应该影响这个的东西.

如果我从Sandbox引用中删除了对DLL的项目引用并重新添加它,那么红色下划线全部消失,颜色编码将返回给我所有的类等; 但是当我尝试构建解决方案时,整个事情再次崩溃.

当我右键单击Sandbox的引用中的DLL项目并在对象浏览器中查看时,我可以看到命名空间和所有内容.

我觉得这可能是某种错误?

这是某种VS2010的错误吗?几个月前我遇到了同样的问题,我当时只能通过制作一个全新的项目并重新导入我的文件来修复它.但是,这一次,我有一个bajillion文件,只会作为最后的手段!

编辑:经过惊慌失措并撤消所有我的更改后,试图找到导致问题的原因,似乎是这一行:

string url = "http://maps.google.com?q=" + HttpUtility.UrlEncode(address);
Run Code Online (Sandbox Code Playgroud)

如果我注释掉这一行,那么我没有命名空间错误,项目构建正常.虽然我看不出这条线有什么不妥.

c# namespaces winforms

83
推荐指数
2
解决办法
4万
查看次数

为什么ANSI C没有命名空间?

对于大多数语言来说,拥有名称空间似乎是明智之举.但据我所知,ANSI C不支持它.为什么不?有计划将其纳入未来的标准吗?

c namespaces ansi-c

82
推荐指数
7
解决办法
6万
查看次数