标签: module

你能在Python中为导入的模块定义别名吗?

在Python中,是否可以为导入的模块定义别名?

例如:

import a_ridiculously_long_module_name
Run Code Online (Sandbox Code Playgroud)

...所以它的别名为'short_name'.

python alias module python-import

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

ruby继承vs mixins

在Ruby中,既然你可以包含多个mixin但只扩展一个类,那么看起来mixins比继承更受欢迎.

我的问题:如果你正在编写必须扩展/包含的代码才有用,你为什么要把它变成一个类?换句话说,为什么你不总是把它变成一个模块?

我只能想到你想要一个类的一个原因,那就是你需要实例化这个类.但是,在ActiveRecord :: Base的情况下,您永远不会直接实例化它.所以不应该是一个模块而不是?

ruby inheritance module class mixins

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

为什么Typescript使用关键字"export"来使类和接口公开?

在尝试使用Typescript的时候,我意识到模块中的类(用作命名空间)不可用于其他类,除非我export在它们之前编写了关键字,例如:

module some.namespace.here
{
   export class SomeClass{..}
}
Run Code Online (Sandbox Code Playgroud)

所以现在我可以使用上面这样的代码:

var someVar = new some.namespace.here.SomeClass();
Run Code Online (Sandbox Code Playgroud)

但是我只是想知道为什么使用这个关键字而不是仅仅使用public在方法级别使用的关键字来表示方法或属性应该是外部可访问的.那么为什么不使用相同的机制来使类和接口等在外部可见?

这将产生如下结果的代码:

module some.namespace.here
{
   public class SomeClass{..}
}
Run Code Online (Sandbox Code Playgroud)

module public access-modifiers typescript

125
推荐指数
2
解决办法
7万
查看次数

在Mac上安装python模块最兼容的方法是什么?

我开始学习python并喜欢它.我主要在Linux上使用Mac.我在Linux(大多数是Ubuntu 9.04)上发现当我使用apt-get安装python模块时它工作正常.我可以毫不费力地导入它.

在Mac上,我习惯使用Macports来安装所有的Unixy东西.但是,我发现我安装的大多数python模块都没有被python看到.我花了一些时间玩PATH设置并使用python_select.没有什么真的有用,在这一点上我并不是真正理解,而是我只是在四处寻找.

我觉得Macports并不是普遍喜欢管理python模块的.我想用更"接受"(如果这是正确的话)方法开始新鲜.

所以,我想知道,Mac python开发人员用来管理模块的方法是什么?

奖金问题:

你使用Apple的python还是其他一些版本?你是从源代码编译所有东西还是有一个运行良好的包管理器(Fink?).

python macos module packages macports

124
推荐指数
6
解决办法
16万
查看次数

无法在Python中导入我自己的模块

我很难理解模块导入如何在Python中工作(我以前从未用任何其他语言完成它).

比方说我有:

myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py
Run Code Online (Sandbox Code Playgroud)

现在我想尝试这样的事情:

myapp.py
===================
from myapp import SomeObject
# stuff ...

TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
Run Code Online (Sandbox Code Playgroud)

但是,我肯定做错了,因为Python无法看到这myapp是一个模块:

ImportError: No module named myapp
Run Code Online (Sandbox Code Playgroud)

python import module package

121
推荐指数
6
解决办法
25万
查看次数

如何制作跨模块变量?

__debug__变量很方便,部分原因是它影响每个模块.如果我想创建另一个以相同方式工作的变量,我该怎么做?

变量(让我们是原始的并称之为'foo')并不一定是真正的全局变量,因为如果我在一个模块中更改foo,它会在其他模块中更新.如果我可以在导入其他模块之前设置foo然后他们会看到相同的值,我会没事的.

python module global

117
推荐指数
7
解决办法
14万
查看次数

我可以使用__init__.py来定义全局变量吗?

我想定义一个应该在包的所有子模块中可用的常量.我认为最好的地方是在__init__.pyroot包的文件中.但我不知道该怎么做.假设我有几个子包,每个子包都有几个模块.如何从这些模块中访问该变量?

当然,如果这是完全错误的,并且有更好的选择,我想知道它.

python module packages global-variables init

116
推荐指数
2
解决办法
7万
查看次数

什么是.在Python的import语句中是什么意思?

我正在查看Python multiprocessing模块的代码,它包含以下行:

from ._multiprocessing import win32, Connection, PipeConnection
Run Code Online (Sandbox Code Playgroud)

代替

from _multiprocessing import win32, Connection, PipeConnection
Run Code Online (Sandbox Code Playgroud)

微妙的差异是之前的时期_multiprocessing.那是什么意思?为什么这个时期?

python module

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

模块上的__getattr__

如何__getattr__在模块上实现类的等价?

当调用模块静态定义的属性中不存在的函数时,我希望在该模块中创建一个类的实例,并在模块上的属性查找中使用与失败相同的名称调用其上的方法.

class A(object):
    def salutation(self, accusative):
        print "hello", accusative

# note this function is intentionally on the module, and not the class above
def __getattr__(mod, name):
    return getattr(A(), name)

if __name__ == "__main__":
    # i hope here to have my __getattr__ function above invoked, since
    # salutation does not exist in the current namespace
    salutation("world")
Run Code Online (Sandbox Code Playgroud)

这使:

matt@stanley:~/Desktop$ python getattrmod.py 
Traceback (most recent call last):
  File "getattrmod.py", line 9, in <module>
    salutation("world")
NameError: name 'salutation' is not …
Run Code Online (Sandbox Code Playgroud)

python module attributeerror getattr python-3.x

114
推荐指数
7
解决办法
4万
查看次数

在ES6模块中导出多个类

我正在尝试创建一个导出多个ES6类的模块.假设我有以下目录结构:

my/
??? module/
    ??? Foo.js
    ??? Bar.js
    ??? index.js
Run Code Online (Sandbox Code Playgroud)

Foo.js并且Bar.js每个导出一个默认的ES6类:

// Foo.js
export default class Foo {
  // class definition
}

// Bar.js
export default class Bar {
  // class definition
}
Run Code Online (Sandbox Code Playgroud)

我目前的index.js设置如下:

import Foo from './Foo';
import Bar from './Bar';

export default {
  Foo,
  Bar,
}
Run Code Online (Sandbox Code Playgroud)

但是,我无法导入.我希望能够做到这一点,但找不到类:

import {Foo, Bar} from 'my/module';
Run Code Online (Sandbox Code Playgroud)

在ES6模块中导出多个类的正确方法是什么?

javascript module export babel ecmascript-6

114
推荐指数
5
解决办法
10万
查看次数