小编Tho*_*asH的帖子

呼叫/ cc的细节

这与什么是电话/ cc有关?但是我不想为了我自己的目的而劫持这个问题,而且它的一些论据就像对setjmp/longjmp的类比一样逃避了我.

我认为我对延续是什么有足够的了解,我认为它是当前调用堆栈的快照.我不想讨论为什么这可能有趣或者你可以用延续做什么.我的问题更具体地说,为什么我必须提供一个函数参数来调用/ cc?为什么不调用/ cc只返回当前的延续,所以我可以用它做任何事情(存储它,调用它,你命名它)?在另一个问题(http://community.schemewiki.org/?call-with-current-continuation-for-C-programmers)的链接中,它谈到"基本上它只是一种干净的方式来延续你并且不要让后续跳回到保存的点.",但我没有得到它.这似乎不必要地复杂化.

scheme continuations callcc

7
推荐指数
2
解决办法
1842
查看次数

发电机功能性能

我试图了解生成器函数的性能.我使用了cProfile和pstats模块来收集和检查分析数据.有问题的功能是这样的:

def __iter__(self):
    delimiter  = None
    inData     = self.inData
    lenData    = len(inData)
    cursor     = 0
    while cursor < lenData:
        if delimiter:
            mo = self.stringEnd[delimiter].search(inData[cursor:])
        else:
            mo = self.patt.match(inData[cursor:])
        if mo:
            mo_lastgroup = mo.lastgroup
            mstart       = cursor
            mend         = mo.end()
            cursor       += mend
            delimiter = (yield (mo_lastgroup, mo.group(mo_lastgroup), mstart, mend))
        else:
            raise SyntaxError("Unable to tokenize text starting with: \"%s\"" % inData[cursor:cursor+200])
Run Code Online (Sandbox Code Playgroud)

self.inData是一个unicode文本字符串,self.stringEnd是一个带有4个简单正则表达式的字典,self.patt是一个大的正则表达式.整个过程就是将大字符串逐个拆分成较小的字符串.

分析使用它的程序我发现程序运行时间的最大部分花在了这个函数上:

In [800]: st.print_stats("Scanner.py:124")

         463263 function calls (448688 primitive calls) in 13.091 CPU seconds

   Ordered by: …
Run Code Online (Sandbox Code Playgroud)

python performance profiling generator

6
推荐指数
1
解决办法
726
查看次数

Python导入,路径,目录和模块

首先让我说我已经对过去一周的过程进行了广泛的研究,但还没有找到这些问题的实际答案 - 只是一些模糊的答案并没有真正解释正在发生的事情.如果这只是因为我错过了我想要的东西,我很抱歉 - 请指出我正确的方向.

我的目录结构是:

TestProject/
    runtest*
    testpackage/
        __init__.py
        testmod.py
        testmod2.py
        testsubs/
            testsubmod.py
Run Code Online (Sandbox Code Playgroud)

几个笔记:

  • 我在Ubuntu上使用python2.7
  • 我正在测试bpython
  • 我正在从特定目录运行bpython来测试导入行为的方式
  • 我正在尝试遵循最佳做法.
  • 这个软件包没有安装,它在一个随机的dev目录中
  • 该目录不在pythonpath中
  • 我在包目录中有一个init .py
  • 嵌套目录中没有init .py文件
  • 在初始化 .py文件是空的
  • testpackage/testmod.py包含TestModClass
  • testpackage/testsubs/testsubmod.py包含TestSubModClass

我观察到的事情:

  • 当我从TestProject /运行bpython 进口testpackage作品
    • 这不会导入testpackage.testmod
    • 我根本无法访问testpackage.testmod
  • 当我从TestProject/import运行bpython时,testpackage.testmod失败了
  • 当我从testProject运行bpython/从testpackage导入testmod工作
  • 我可以向init .py 添加代码以显式导入testmod.py,但不能testubs/testmod.py
    • 我不认为这是正确的方法,如果用户不想导入该模块怎么办?
  • 从testmod.py我可以导入testmod2,但不能导入testpackage.testmod2
    • 这样做很好,我可以使用STL或扭曲的名称(例如testpackage.logging)命名我自己的模块,而不会导致错误(很糟糕的是必须命名我自己的模块废话,如customerlogging,而不仅仅是mypackage.日志记录)

问题是:

  1. python路径中存在的包和模块上的导入与您尝试从当前目录导入时的python处理方式不同吗?
  2. 为什么不导入testpackage让我访问testpackage.testmod?当我导入操作系统时,我可以访问os.path(etc).
  3. 使用包,我应该坚持在基目录中使用单个init .py,还是应该将它们嵌套在后续目录中?
  4. 如何导入指定包名称的模块?来自testmod.py的IE,我想导入testpackage.testmod2而不仅仅是testmod2.
  5. 从subsubs目录导入子模块的正确方法是什么?
    1. 我看到的唯一解决方案是将该目录从init .py 附加到pythonpath ,但我不知道这是否正确.

提前致谢.

python module package

6
推荐指数
2
解决办法
5396
查看次数

在不使用字符串切片的情况下将正则表达式应用于子字符串

我想从一个特定位置开始在更大的字符串中搜索正则表达式匹配,而不使用字符串切片.

我的背景是我想迭代搜索一个字符串,以获得各种正则表达式的匹配.Python中的一个自然解决方案是跟踪字符串中的当前位置并使用例如

re.match(regex, largeString[pos:])
Run Code Online (Sandbox Code Playgroud)

在一个循环中.但是对于非常大的字符串(~1MB),字符串切片largeString[pos:]变得昂贵.我正在寻找一种解决方法.

旁注:有趣的是,在Python文档的一个利基中,它讨论pos了匹配函数的一个可选参数(这正是我想要的),这是函数本身找不到的:-).

python regex

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

有reST作家吗?

是否有针对docutil.nodes树的reST Writer?我找不到一个,但也许我错过了一些明显的东西.或者自己写一个是微不足道的?我想实现reST-to-reST转换.

python restructuredtext docutils

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

为什么 gradle 在配置时解决依赖关系?

我们有一些“重量级”工件,但我们不一定总是需要它们。如果我们有一些依赖于它们的任务,那么无论我们调用哪个任务,它们都会被下载。

如果 gradle 仅在实际需要时才下载依赖项,那就太好了。

例子

configurations {
  webresources
}
dependencies {
  webresources my:hugeIconCollection:2.0@zip
}
def unpackIcons = tasks.register('unpackIcons', Copy) {
  configurations.webresources.resolveConfiguration.resolvedArtifacts.each {
    from zipTree(it.file)
    into 'resources/path'
  }
}
Run Code Online (Sandbox Code Playgroud)

现在只需运行gradle help就会下载hugeIconCollection.zip. 该代码使用了“配置避免 API”,但没有帮助。不过,最好只在unpackIcons任务(或依赖于它的任务)运行时下载资源,然后将文件解压缩到目标路径。

gradle

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

如何在赋值中区分无参数调用和函数引用

在分配中,如何区分分配不带参数的函数的返回值(因此调用可能没有括号)和分配函数引用本身。是否仅通过查看接收变量的类型?

这是用于说明的代码片段(此处是Delphi noob):

type
   TIntFun = function():integer;
var
   IntFun : TIntFun;
   I : integer;
function AnIntFun(): integer;
begin
  result := 3;
end;
begin
  I := AnIntFun;  // argumentless call, returning 3
  IntFun := AnIntFun; // function assignment?
end
Run Code Online (Sandbox Code Playgroud)

delphi

5
推荐指数
2
解决办法
98
查看次数

qooxdoo vs骨干

我使用过Backbone.js并且喜欢它.

最近我偶然遇到了qooxdoo?它似乎更好(对于OOP代码设计)!
完全OOP支持(喜欢继承[ this.base],命名空间等').
我还没有深入研究它,所以我在寻找与Backbone.js的比较而没有任何成功.

所以,如果你使用过两者 - 关于Backbone.js你能说些什么关于qooxdoo?

我不是在谈论Backbone中的"模型持久化"(保存/删除ajax调用)以及qooxdoo(qx.ui.form.Button)中的UI等功能,而是编码结构和可维护性.

javascript oop javascript-framework qooxdoo backbone.js

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

在Haskell中是否存在完全应用的curried函数thunk?

换句话说:

我可以在不进行评估的情况下将所有参数应用于curried函数吗?所以我还有一个函数值,而不是计算的结果?

例:

add x y = x + y
add1 = add 3   {- add1 is a function -}
add2 = add1 4  {- add2 is 7, but I would like to have a function 
                  I can call with no arguments!? -}
Run Code Online (Sandbox Code Playgroud)

原因是传递完全绑定的函数,并且可以在任意情况下调用,而无需提供其他参数.

请不要欺骗(比如在呼叫站点提供伪造的最后一个参数,如1或True).

haskell

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

了解Python交互式解释器中的打印字节

我偶然发现了我只能将其描述为Python交互式解释器中的错误.虽然这个bug相当无关紧要,但我觉得这是一个有趣的问题,并且很有可能学习python,低级计算和调试.

问题出现在这里:

pic = open("blurry.jpg", "rb")
data = pic.read()
for byte in data:
    print byte
Run Code Online (Sandbox Code Playgroud)

这导致......

#prints the entire file byte by byte_
?

0
?
?
>>> 1;2c
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我发现[] {}\@ ^已分别替换为Ä,Å,ä,å,ö,É,'Ü'.有趣的是,他们仍然保持功能.例如,list = Ä1,2,3,4Å不会引发任何错误.此外,可能更有趣......即使在我退出解释器并重新进入bash之后,这种行为仍在继续.

此外,我只能在使用特定图像时重新创建此行为,我在此处托管:http://imgur.com/lTo6m

我还没有弄清楚我会在哪里开始分析这样的问题,所以我希望有人可以提供一些见解.

一如既往地谢谢!

python terminal byte ansi-escape

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

Vaadin20:从 Pom 依赖项扫描 Java 代码

我想将 Java 类放在使用 Vaadin@Endpoint注释(来自com.vaadin.flow.server.connect.Endpoint)的 Maven 工件中,以便在多个 Vaadin 项目中使用此类。

这是此类类的一个简单示例:

import com.vaadin.flow.server.connect.Endpoint;
import lombok.RequiredArgsConstructor;
import java.util.Optional;

@Endpoint
@RequiredArgsConstructor
public class SupportInfoEndpoint {

  public Optional<String> getSupportInfo(){
    return Optional.of("mailto:support@my.corp");
  }
}
Run Code Online (Sandbox Code Playgroud)

Maven 工件包括类的源代码。我必须做什么才能在使用项目中通过 Vaadin 构建过程扫描此类,以便

  • 生成前端对应的 TypeScript 代码
  • 该类包含在 Spring-Boot 应用程序中(因此端点实际上在运行时可用)

有可能吗?

vaadin vaadin-fusion vaadin20

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