相关疑难解决方法(0)

在对象名称之前单个和双下划线的含义是什么?

有人可以解释在Python中对象名称之前有前导下划线的确切含义吗?另外,解释单个和双重前导下划线之间的区别.此外,无论所讨论的对象是变量,函数,方法等,这个含义是否保持不变?

python naming-conventions

1205
推荐指数
13
解决办法
36万
查看次数

Python模块和Python包之间有什么区别?

Python模块和Python包之间有什么区别?

另请参阅:"package"和"module"之间的区别(对于其他语言)

python module package

511
推荐指数
6
解决办法
19万
查看次数

如何列出Python模块中的所有函数?

我在我的系统上安装了一个python模块,我希望能够看到它中有哪些函数/类/方法.

我想在每一个上调用doc函数.在ruby中,我可以执行类似ClassName.methods的操作,以获取该类上可用的所有方法的列表.python中有类似的东西吗?

例如.就像是:

from somemodule import foo
print foo.methods # or whatever is the correct method to call
Run Code Online (Sandbox Code Playgroud)

python reflection module inspect

376
推荐指数
13
解决办法
59万
查看次数

在python中定义私有模块函数

根据http://www.faqs.org/docs/diveintopython/fileinfo_private.html:

像大多数语言一样,Python具有私有元素的概念:

  • 私有函数,无法从模块外部调用

但是,如果我定义了两个文件:

#a.py
__num=1
Run Code Online (Sandbox Code Playgroud)

和:

#b.py
import a
print a.__num
Run Code Online (Sandbox Code Playgroud)

当我运行b.py它打印出来,1没有任何例外.diveintopython错了,还是我误解了什么?而且是有一些方法可以定义模块的功能为私有?

python module private function

225
推荐指数
6
解决办法
21万
查看次数

元组比Python中的列表更有效吗?

在实例化和检索元素时,元组和列表之间是否存在性能差异?

python performance tuples list python-internals

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

为什么"进口*"不好?

建议不要import *在Python中使用.

任何人都可以分享原因,以便我下次可以避免它吗?

python python-import

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

init中导入但未使用的python pep8类

我正在使用python flake8库在python中进行PEP8检查.我__init__.py在我的一个子模块中的文件中有一个import语句,如下所示:

from .my_class import MyClass
Run Code Online (Sandbox Code Playgroud)

我在init文件中有这一行的原因是我可以从子模块导入MyClass from somemodule import MyClass而不必编写from somemodule.my_class import MyClass.

我想知道是否可以在纠正PEP8违规时保持此功能?

python pep8 flake8

26
推荐指数
3
解决办法
7319
查看次数

什么是python __all__模块级变量?

我在python/Lib源代码中看到了很多,但我不知道它是什么.

我以为它被用来限制模块的可访问成员.因此,只有__all__将要出现的元素才会显示出来dir(module).

我做了一个小例子,看到它没有像我预期的那样工作.

那么...... python __all__模块级变量是什么?

python namespaces

24
推荐指数
2
解决办法
1万
查看次数

Python:导入模块一次,然后与几个文件共享

我有以下文件,

file1.py
file2.py
file3.py
Run Code Online (Sandbox Code Playgroud)

让我们说这三个都用了

lib7.py
lib8.py
lib9.py
Run Code Online (Sandbox Code Playgroud)

目前,这三个文件中的每一个都有这些行

import lib7
import lib8
import lib9
Run Code Online (Sandbox Code Playgroud)

如何设置我的目录/代码,使libs只导入一次,然后在三个文件之间共享?

python python-import

15
推荐指数
2
解决办法
5619
查看次数

顶级 __init__.py 导入的最佳实践

当包变得很大时,可能很难记住东西在哪里,并且我们想要的对象的点路径可能很麻烦。作者似乎解决这个问题的一种方法是将“最好的”对象的引用带到顶部,尽管这些代码实际上可以存在于下面的几个包级别中。

这让人可以说:

from pandas import wide_to_long
Run Code Online (Sandbox Code Playgroud)

代替

from pandas.core.reshape.melt import wide_to_long
Run Code Online (Sandbox Code Playgroud)

但是这样做的来龙去脉以及该方法的最佳实践是什么?不加载__init__.py带有许多导入的顶部(为了使它们在顶层可用)是否意味着包的单个对象的任何导入突然会占用比所需更多的内存 - 因为 中提到的所有内容都会自动__init__.py加载?

然而,包却可以做到这一点。例如,看看可以从顶层numpy或底层导入什么(可以在这个要点pandas中找到运行您自己的诊断的代码)。

$ python print_top_level_diagnosis.py numpy
--------- numpy ---------
599 objects can be imported from top level numpy:
  19 modules
  300 functions
  104 types

depth   count
0   162
1   406
2   2
3   29
4   1

$ python print_top_level_diagnosis.py pandas
--------- pandas ---------
115 objects can be imported from top level pandas:
  12 modules
  55 functions
  40 …
Run Code Online (Sandbox Code Playgroud)

python python-import python-3.x

15
推荐指数
1
解决办法
3434
查看次数