小编Aar*_*all的帖子

在classmethods上使用property()

我有一个类有两个类方法(使用classmethod()函数)来获取和设置本质上是一个静态变量.我尝试使用property()函数,但它会导致错误.我能够在解释器中使用以下内容重现错误:

class Foo(object):
    _var = 5
    @classmethod
    def getvar(cls):
        return cls._var
    @classmethod
    def setvar(cls, value):
        cls._var = value
    var = property(getvar, setvar)
Run Code Online (Sandbox Code Playgroud)

我可以演示类方法,但它们不能作为属性:

>>> f = Foo()
>>> f.getvar()
5
>>> f.setvar(4)
>>> f.getvar()
4
>>> f.var
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: 'classmethod' object is not callable
>>> f.var=5
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: 'classmethod' object is not callable
Run Code Online (Sandbox Code Playgroud)

是否可以将property()函数与classmethod修饰函数一起使用?

python oop

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

如何使用Language.Haskell.Interpreter发送可执行文件?

我希望能够嵌入一个Haskell解释器,hint这样我就可以在Haskell中编写插件来与我的程序一起使用.我不想为我的可执行文件发布整个Haskell平台.

通常,Haskell可执行文件是非常独立的.例如,擦除PATH不会导致问题:

$ PATH=. Hello
Hello world
Run Code Online (Sandbox Code Playgroud)

但是,runInterpreter如果我删除了一个简单的测试程序使用炸弹PATH:

$ PATH=. TryHint
GhcException "panic! (the 'impossible' happened)\n  (GHC version 7.8.3 for x86_64-apple-darwin):\n\tDynamic linker not initialised\n\nPlease report this as a GHC bug:  http://www.haskell.org/ghc/reportabug\n"
Run Code Online (Sandbox Code Playgroud)

环境中必须提供哪些库或可执行文件才能使其工作?

otool 没有提供太多指导:

otool -L TryHint
TryHint:
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
    /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
    /usr/local/lib/libgmp.10.dylib (compatibility version 13.0.0, current version 13.0.0)
Run Code Online (Sandbox Code Playgroud)

测试代码TryHint没有做太多:

import Control.Monad
import Language.Haskell.Interpreter

main = do
  f <- runInterpreter …
Run Code Online (Sandbox Code Playgroud)

haskell packaging shipping

136
推荐指数
1
解决办法
2025
查看次数

超时功能,如果完成时间太长

我有一个shell脚本循环遍历包含URL的文本文件:我想访问并截取屏幕截图.

这一切都做得很简单.该脚本初始化一个类,该类在运行时创建列表中每个站点的屏幕截图.有些站点需要非常长的时间来加载,有些站点可能根本没有加载.所以我想将screengrabber-function包装在一个超时脚本中,False如果它在10秒内无法完成,则使函数返回.

我满足于最简单的解决方案,也许设置一个异步计时器,无论在函数内部实际发生什么,它将在10秒后返回False?

python

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

将Python程序转换为C/C++代码?

是否可以将Python程序转换为C/C++?

我需要实现几个算法,我不知道,如果性能差距大到足以证明所有的痛苦在C/C++(这我不擅长)做的时候我会去.我考虑过编写一个简单的算法,并针对这样一个转换后的解决方案进 如果仅这一点明显快于Python版本,那么除了在C/C++中做这件事之外我别无选择.

c c++ python code-generation

133
推荐指数
8
解决办法
26万
查看次数

python的file.flush()到底在做什么?

我在文件对象的Python 文档中找到了这个:

flush()不一定将文件的数据写入磁盘.使用flush()后跟os.fsync()来确保此行为.

所以我的问题是:Python到底在flush做什么?我认为它强制将数据写入磁盘,但现在我发现它没有.为什么?

python io fsync output-buffering

124
推荐指数
3
解决办法
9万
查看次数

依赖方法类型有哪些引人注目的用例?

依赖方法类型以前曾是一个实验性功能,现在默认情况下已在中继中启用,显然这似乎在Scala社区中引起了一些兴奋.

初看起来,这并不是显而易见的.Heiko Seeberger在这里发布了一个简单的依赖方法类型示例,从评论中可以看出,可以很容易地在方法上使用类型参数进行复制.所以这不是一个非常引人注目的例子.(我可能会遗漏一些明显的东西.如果是这样,请纠正我.)

对于依赖方法类型的用例有哪些实用且有用的例子,它们明显优于替代方法?

我们可以用以前不可能/容易的事情做些什么有趣的事情?

他们通过现有的类型系统功能为我们买了什么?

此外,依赖方法类型是否类似于或从其他高级类型语言(如Haskell,OCaml)的类型系统中找到的任何功能中汲取灵感?

haskell type-systems programming-languages scala dependent-method-type

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

别名与bash中的变量

我想像这样创建一个别名bash:

alias tail_ls="ls -l $1 | tail"
Run Code Online (Sandbox Code Playgroud)

因此,如果有人输入:

tail_ls /etc/ 
Run Code Online (Sandbox Code Playgroud)

它只会显示目录中的最后10个文件.

$1似乎并不适合我.有什么办法可以在bash中引入变量.

linux bash

108
推荐指数
3
解决办法
8万
查看次数

什么是.h.gch文件?

我最近有一个课程项目,我必须用G ++制作一个程序.我使用了一个makefile,由于某种原因,它偶尔会留下一个.h.gch文件.有时,这不会影响编译,但是每次都会导致编译器针对已修复或没有意义的问题发出错误.我有两个问题:

1)什么是.h.gch文件以及用于什么?和

2)为什么没有清理时会引起这样的问题?

谢谢您的帮助.

c++ g++

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

Python:在__getitem__中实现切片

我正在尝试为我正在创建的类创建切片功能,以创建矢量表示.

到目前为止我有这个代码,我相信它会正确地实现切片,但每当我做一个调用,就像v[4]v是一个向量python返回一个关于没有足够的参数的错误.所以我试图弄清楚如何getitem在我的类中定义特殊方法来处理普通索引和切片.

def __getitem__(self, start, stop, step):
    index = start
    if stop == None:
        end = start + 1
    else:
        end = stop
    if step == None:
        stride = 1
    else:
        stride = step
    return self.__data[index:end:stride]
Run Code Online (Sandbox Code Playgroud)

python slice python-datamodel

99
推荐指数
5
解决办法
6万
查看次数

Python列表索引中的冒号(:)

我是Python的新手.我看到:列表索引中使用,特别是当它与函数调用相关时.

Python 2.7文档建议lists.append转换为a[len(a):] = [x].为什么需要len(a)用冒号后缀?

据我所知,:它用于识别字典中的键.

python

97
推荐指数
3
解决办法
19万
查看次数