小编cam*_*ddc的帖子

如何配置我的代码?

我想知道如何分析我的代码.

我已经阅读了文档,但由于没有给出任何例子,我无法从中得到任何结果.

我有一个很大的代码,它花了很多时间,因此我想分析并提高其速度.我没有在方法中编写我的代码,其间很少但不完全.我的代码中没有任何主要内容.我想知道如何使用分析.我正在寻找关于如何分析的一些示例或示例代码.

我尝试了psyco,即在我的代码顶部添加两行:

import psyco
psyco.full()
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?它没有表现出任何改善.任何其他加速方式,请建议.

python profiling

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

如何动态覆盖__setitem__?(没有子类)

我无法在Python2.7中覆盖一些内置函数,例如'__setitem__' (尽管在我测试的先前版本中也是如此)

虽然我知道通过子类化很容易做到,但这不是我想要的,我需要能够动态覆盖这些方法.

显然,当我的类是' object ' 的子类时,重写的方法总是最终调用原始的方法,但是当我的类不是' 对象 '时,它的工作原理是:

>>> def new_implementation(k, v):
...     print 'New implementation'
...

### class that extends object
>>> class ExtendsObject(object):
...     def __setitem__(self, k, v):
...             print 'ExtendsObject implementation'
...



### Checking implementation
>>> obj = ExtendsObject()
>>> obj[0]=0
ExtendsObject implementation

### trying to override setitem, no success
>>> obj.__setitem__ = new_implementation
>>> obj[0]=0
ExtendsObject implementation




### class that does NOT extends object
>>> class DoesNotExtend:
...     def __setitem__(self, k, v):
... …
Run Code Online (Sandbox Code Playgroud)

python overriding built-in python-2.7

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

在运行时覆盖@property getter

有没有办法在Python中覆盖运行时的@property getter?

我希望我的类有一个"复杂"的getter,它运行一些代码并返回一个可以改变的值.但是,如果由于某种原因我将该变量设置为其他东西,我希望它始终返回该值.

例如:

class Random(object):
    @property
    def random_number():
        return random.randint(0,10)


    @random_number.setter
    def random_number(value):
        # Overlord says that random must always return `value`
        (((I don't know that to do here)))


>>>r = Random()
>>>r.random_number
>>>(returns something between 0,10)

>>>r.random_number = 4 # Confirmed by dice roll
>>>r.random_number
>>>4 (always)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用像'force_value'这样的实例var,我总是检查我的getter,但我想尽可能避免这种情况.

理想情况下,我的setter函数可以做类似的事情

self.random_number.getter = lambda:4
Run Code Online (Sandbox Code Playgroud)

但我不知道如何做到这一点.

python overriding properties

0
推荐指数
1
解决办法
2021
查看次数