小编ger*_*rit的帖子

如何关闭错误后保持打开的文件?

我在用

fid = fopen('fgfg.txt');
Run Code Online (Sandbox Code Playgroud)

打开一个文件.

有时在我设法关闭文件之前发生错误.在关闭Matlab之前,我无法对该文件做任何事情.

如果发生错误,如何关闭文件?

file-io matlab

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

从Python调试器列出理解范围错误

在调试我的代码时,我想使用列表理解.但是,当我在函数内部时,似乎无法从调试器中评估列表理解.

我使用的是Python 3.4.

脚本内容:

$ cat test.py 
#!/usr/bin/python

def foo():
    x = [1, 2, 3, 3, 4]

    print(x)

foo()
Run Code Online (Sandbox Code Playgroud)

交互式调试:

$ python3 -mpdb test.py                                                                                                                                           
> /tmp/test.py(3)<module>()
-> def foo():
(Pdb) step
> /tmp/test.py(8)<module>()
-> foo()
(Pdb) 
--Call--
> /tmp/test.py(3)foo()
-> def foo():
(Pdb) 
> /tmp/test.py(4)foo()
-> x = [1, 2, 3, 3, 4]
(Pdb) 
> /tmp/test.py(6)foo()
-> print(x)
(Pdb) p [x for _ in range(1)]
*** NameError: name 'x' is not defined
(Pdb) p x
[1, 2, 3, 3, …
Run Code Online (Sandbox Code Playgroud)

python debugging list-comprehension python-3.x

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

在Python方法签名中正斜杠"/"的含义是什么,如help(foo)所示?

在以交互方式返回的签名中help(foo),是什么意思/

In [37]: help(object.__eq__)

Help on wrapper_descriptor:

__eq__(self, value, /)
    Return self==value.

In [55]: help(object.__init__)

Help on wrapper_descriptor:

__init__(self, /, *args, **kwargs)
    Initialize self.  See help(type(self)) for accurate signature.
Run Code Online (Sandbox Code Playgroud)

我认为它可能与仅关键字参数有关,但事实并非如此.当我使用仅关键字参数创建自己的函数时,位置和仅关键字参数由*(按预期)分隔,而不是由/.什么/意思?

python inspection python-interactive

26
推荐指数
1
解决办法
4381
查看次数

什么是DynamicClassAttribute以及如何使用它?

从Python 3.4开始,有一个名为的描述符DynamicClassAttribute.文件说明:

types.DynamicClassAttribute(fget=None, fset=None, fdel=None, doc=None)

将类的属性访问路由到__getattr__.

这是一个描述符,用于定义在通过实例和类访问时行为不同的属性.实例访问仍​​然正常,但通过类访问属性将被路由到类的__getattr__方法; 这是通过提高来完成的AttributeError.

这允许在实例上具有活动属性,并且在类上具有相同名称的虚拟属性(有关示例,请参阅枚举).

版本3.4中的新功能.

它显然用在枚举模块中:

# DynamicClassAttribute is used to provide access to the `name` and
# `value` properties of enum members while keeping some measure of
# protection from modification, while still allowing for an enumeration
# to have members named `name` and `value`.  This works because enumeration
# members are not set directly on the enum class -- __getattr__ is
# …
Run Code Online (Sandbox Code Playgroud)

python class python-3.4

23
推荐指数
2
解决办法
1170
查看次数

为什么禁用垃圾收集器?

Pythons gc.disable禁用自动垃圾收集.据我了解,这会产生一些副作用.为什么有人想要禁用自动垃圾收集,如何在没有自动垃圾收集的情况下有效管理内存?

python garbage-collection

20
推荐指数
4
解决办法
7605
查看次数

为什么仅在分配给变量时才创建此memoryview会引发ValueError?

Pythons memoryview支持datetime64timedelta.好.但是,当我尝试创建一个memoryview包含一个datetime64或的结构化数组时timedelta,它似乎可以工作...... 除非我将它分配给一个变量!

In [19]: memoryview(zeros(10, dtype=[("A", "m8[s]")]))
Out[19]: <memory at 0x7f1d455d6048>

In [20]: x = memoryview(zeros(10, dtype=[("A", "m8[s]")]))
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
ValueError: cannot include dtype 'm' in a buffer

In [21]: x = _19

In [22]: x
Out[22]: <memory at 0x7f1d455d6048>
Run Code Online (Sandbox Code Playgroud)

这严重挑战了我对Python基本工作方式的理解.怎么能f()x = f()不同,考虑到(1)IPythons REPL分配输出到_19反正,和(2)的函数/类memoryview没有知道什么是来电者会用它的输出做的呢?

我正在运行Python 3.4.1上的代码,numpy 1.10.0.dev + fbcc24f,在Linux 2.6.32-431.23.3.el6.x86_64,Scientific Linux发行版6.6上.


编辑

在Python …

python numpy read-eval-print-loop memoryview structured-array

19
推荐指数
1
解决办法
653
查看次数

为什么date + timedelta成为日期,而不是日期时间?

在Python中,在混合类型的数字操作中,较窄的类型被扩展为另一个的类型,例如int+ floatfloat:

In [57]: 3 + 0.1
Out[57]: 3.1
Run Code Online (Sandbox Code Playgroud)

但是datetime.date,我们有datetime.date+ datetime.timedeltadatetime.date,而不是 datetime.datetime:

In [58]: datetime.date(2013, 1, 1) + datetime.timedelta(seconds=42)
Out[58]: datetime.date(2013, 1, 1)
Run Code Online (Sandbox Code Playgroud)

为什么拓宽推理应用于数字,而不是date/ datetime/ timedelta

(背景:我正在写一读例程,其中一个领域是一年的文件格式中,一个场中某一天的一年,场以来的毫秒数午夜当然,简单而明确的解决方案.datetime.datetime(2013, 1, 1, 0, 0, 0) + datetime.timedelta(seconds=42)但一个同样可以说一个人应该改写3 + 0.13.0 + 0.1)

python datetime

18
推荐指数
4
解决办法
2948
查看次数

来自外国部分的Python ConfigParser插值

使用Python ConfigParser,是否可以跨外部使用插值?我的想法似乎告诉我,我已经看到它可能在某个地方,但我在搜索时找不到它.

这个例子不起作用,但它是为了让我知道我正在尝试做什么.

[section1]
root = /usr

[section2]
root = /usr/local

[section3]
dir1 = $(section1:root)/bin
dir2 = $(section2:root)/bin
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是Python 2.4.

python python-2.x python-2.4 configparser python-2.7

16
推荐指数
1
解决办法
6846
查看次数

什么是空的`()`在Matlab矩阵上做什么?

Matlab,表达式M()究竟在哪里做M矩阵?

>> M = magic(3);
>> M() 

ans =

     8     1     6
     3     5     7
     4     9     2
Run Code Online (Sandbox Code Playgroud)

isequaln(M, M())在任何情况下表达都是真的吗?是M()简单的拷贝M,或相同的表达,或者是有地方提到任何上下文M()手段东西比指的是别的M?也许在运算符重载的情况下?

matlab matrix

16
推荐指数
1
解决办法
274
查看次数

"__requires__"在python中意味着什么?

我是python中的新手.

有人可以回答__requires__以下代码中的含义吗?他们为什么要放在__requires__ = 'flower==0.4.0'文件的开头?

#!/srv/virtualenvs/zeusenv/bin/python

__requires__ = 'flower==0.4.0'
import sys
from pkg_resources import load_entry_point

sys.exit(
   load_entry_point('flower==0.4.0', 'console_scripts', 'flower')()
)
Run Code Online (Sandbox Code Playgroud)

python setuptools

16
推荐指数
1
解决办法
4223
查看次数