小编Pet*_*mit的帖子

什么是shutil.rmtree可以抛出的异常的完整列表

我在Python(2.7)中使用shutil中的rmtree方法.

调用此方法时可能发生的所有可能异常是什么?

python shutil

5
推荐指数
1
解决办法
5063
查看次数

如果没有定义setter或deleteter,为什么有人会使用@property?

在python代码中,我经常看到@property的使用.

如果我理解正确,可以使用属性函数定义getter setter和deleter.

如果未定义setter和deleter,为什么会使用@property(@ x.setter,@ x.deleter)?这与不使用@property完全相同吗?

python properties decorator

5
推荐指数
1
解决办法
2183
查看次数

为什么我的蟒蛇蛋不起作用? - 根本找不到任何发行版

我使用以下setup.py分发了我的python包

#!/usr/bin/env python

from setuptools import setup

setup(name='mypackagename',
      version='0.1',
      description='Tool ....',
      author='Peter Smit',
      author_email='lala@lala.com',
      packages=['mypackagename'],
      package_dir={'': 'src'},
      install_requires=['boto'],
      entry_points = dict(console_scripts=[
        'mypackagenamescript = mypackagename.launcher:run',
        ])
      )
Run Code Online (Sandbox Code Playgroud)

我用它创造了一个鸡蛋python setup.py bdist_egg.

现在尝试使用pip安装它会产生以下错误:

bin/pip install mypackagename-0.1-py2.6.egg 
Downloading/unpacking mypackagename-0.1-py2.6.egg
  Could not find any downloads that satisfy the requirement mypackagename-0.1-    py2.6.egg
No distributions at all found for mypackagename-0.1-py2.6.egg
Run Code Online (Sandbox Code Playgroud)

存储完整的日志/home/peter/.pip/pip.log

提到的日志文件显示它试图从pypi下载包,它显然不存在.

我做错了什么?我怎样才能安装我的这个鸡蛋加上它的依赖?

python egg pip distribution

5
推荐指数
1
解决办法
6280
查看次数

如何在Python 2中将位置参数视为关键字参数

对于我正在编写的装饰器,我想操作函数的特定命名参数.考虑以下装饰器:

def square_param(param):
    def func_decorator(func):
        def func_caller(*args,**kwargs):
            kwargs[param] = kwargs[param] * kwargs[param]
            return func(*args,**kwargs)
    return func_caller
return func_decorator
Run Code Online (Sandbox Code Playgroud)

应用于下一个功能:

@square_param('dividend')
def quotient(divisor=1,dividend=0):
    return dividend/divisor
Run Code Online (Sandbox Code Playgroud)

如果将dividend作为关键字参数调用,这将起作用,例如:

>>> quotient(dividend=2)
4
Run Code Online (Sandbox Code Playgroud)

但是,当作为位置参数给出时,这将失败.

>>> quotient(3,4)
TypeError: quotient() got multiple values for keyword argument 'dividend'
Run Code Online (Sandbox Code Playgroud)

使用Python 3,我可以通过强制参数始终作为关键字给出来解决这个问题:

@square_param('dividend')
def quotient(divisor=1,*,dividend=0):
    return dividend/divisor
Run Code Online (Sandbox Code Playgroud)

但是我想支持Python 2,我也想对这个函数加以限制.

有没有办法可以在装饰器中解决这个问题?

python decorator keyword-argument

5
推荐指数
1
解决办法
1402
查看次数

这是pickle实例方法的正确方法吗?如果是的话,为什么不在Python 3中呢?

实例方法不能在Python 2或Python 3中自动腌制.

我需要使用Python 3 挑选实例方法,并将Steven Bethard的示例代码移植到Python 3:

import copyreg
import types

def _pickle_method(method):
    func_name = method.__func__.__name__
    obj = method.__self__
    cls = method.__self__.__class__
    return _unpickle_method, (func_name, obj, cls)

def _unpickle_method(func_name, obj, cls):
    for cls in cls.mro():
        try:
            func = cls.__dict__[func_name]
        except KeyError:
            pass
        else:
            break
    return func.__get__(obj, cls)

copyreg.pickle(types.MethodType, _pickle_method, _unpickle_method)
Run Code Online (Sandbox Code Playgroud)

这种方法是否适用于酸洗实例方法?或者有些事情可怕的错误?我用一些模拟类测试了它,一切似乎都有效.

如果什么都不会出错,为什么Python 3中的标准pickle实例方法不可能?

pickle instance-methods python-3.x

5
推荐指数
1
解决办法
1313
查看次数

string.isdigit()语言环境如何以及为何依赖?

Python具有字符串函数来测试所有字符是否都是数字:string.isdigit().

在手册中写道:

对于8位字符串,此方法取决于区域设置

这种方法如何依赖于locale?在哪些区域设置中有0-9范围之外的数字?

此外,如果这是依赖于语言环境的,那么python是否有一种方法可以使用特定的语言环境(即只有0-9位数)进行检查.

python locale digit

5
推荐指数
1
解决办法
1358
查看次数

不可能直接运行cython模块?

我有一个非常基本的cython测试脚本

test1.pyx:

def do_something(f):
    return f

def main():
    f = 1
    print do_something(f)


if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我编译的是:

cython test1.pyx
gcc -Wall -O2 -g -lm -shared -pthread -fPIC -fwrapv -fno-strict-aliasing -Iinclude/python2.6 -o test1.so test1.c
Run Code Online (Sandbox Code Playgroud)

它有效:

./bin/python -c "import test1; test1.main()"
1
Run Code Online (Sandbox Code Playgroud)

但直接将其称为模块不起作用:

./bin/python -m test1
/mypath/bin/python: No code object available for test1
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我怎样才能让它直接调用cython脚本?

Cython版本0.12.1

5
推荐指数
1
解决办法
2521
查看次数

如何获取日期落在特定月份SQLAlchemy中的所有对象

我有一个简单的SQLAlchemy模型:

class Event(Base):
    """ The SQLAlchemy declarative model class for a Event object. """
    __tablename__ = 'events'
    id = Column(Integer, primary_key=True)
    date = Column(DateTime)
    title = Column(Text)
Run Code Online (Sandbox Code Playgroud)

如何筛选SQLAlchemy查询,以便仅返回特定月份中的事件?

python sqlalchemy

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

在Python中为科学实验选择随机种子的好方法是什么

对于科学实验,我需要生成 10 个随机、固定大小的列表子集。为了使实验可重复,我想用已知种子初始化 10 个不同的 random.Random() 实例。

随机种子需要有多不同?似乎表明使用种子 1 到 10 可能是一个坏主意,因为结果可能是线性相关的。

如果在这种情况下选择种子 1 到 10 是不好的做法,那么以可重复的方式选择种子的好策略是什么?

澄清:在程序运行时(使用特定数据集)始终使用相同的种子是很重要的!最后,我的程序必须是确定性的。

python random

5
推荐指数
1
解决办法
1814
查看次数

比较数组golang

我在Go中定义了自己的类型:

type Sha1Hash [20]byte
Run Code Online (Sandbox Code Playgroud)

我想对这些哈希中的两个进行排序,h1和h2:

func Compare(h1, h2 Sha1Hash) int {

    h1 >= h2 // doens't work, arrays only have == and !=
    bytes.Compare(h1,h2) //doesn't work, Compare only works on slices

}
Run Code Online (Sandbox Code Playgroud)

我如何比较我的阵列?

arrays compare go

5
推荐指数
1
解决办法
2211
查看次数