小编qua*_*ant的帖子

用python2和python3在stderr上写的函数

我正在编写一个应该与python2和python3一起使用的程序.为此,我想有一个函数写入stderr,它适用于两个python版本.

理想我认为会是这样的:

def writeStdErr(message):
    if sys.version_info >= (3, 0):
        print(message, end = "", file = sys.stderr)
    else:
        sys.stderr.write(message)
Run Code Online (Sandbox Code Playgroud)

python2的问题是,打印不是函数,所以我得到了

    print(message, end = "", file = sys.stderr)
                       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我可以通过添加eval来摆脱这个:

def writeStdErr(message):
    if sys.version_info >= (3, 0):
        eval('print(message, end = "", file = sys.stderr)')
    else:
        sys.stderr.write(message)
Run Code Online (Sandbox Code Playgroud)

但是,我不喜欢这个解决方案; 我认为使用eval一般是个坏主意.

有谁知道更好/有更好的解决方案?

编辑:

对于将来遇到同样问题的人,以下事情似乎有效:

def writeStdErr(message):
    sys.stderr.write(message)
Run Code Online (Sandbox Code Playgroud)

要么

from __future__ import print_function
import sys
def writeStdErr(message):
    print(message, file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)

感谢所有答案

python-2.x python-3.x

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

在Haxe编译期间访问编译日期

我想知道是否可以访问外部信息 - 比如编译期间的当前日期.

然后可以做这样的事情:

class MyInfo {
    private var buildDate:Int = --- AUTOMATICALLY INSERT THE CURRENT UNIX DATE TIME HERE ---;

    public function getInfo():String { // example usage
        return "This library was compiled the " + buildDate;
    }
}
Run Code Online (Sandbox Code Playgroud)

我考虑在编译bat/sh/make文件中访问此信息,然后将其传递给编译器.(类似于"-D"的东西.)但是,Haxe编译器似乎不支持如下参数:

haxe --main MyInfo --js test.js -SOMEARG date=$(date)
Run Code Online (Sandbox Code Playgroud)

这样我以后就可以使用变量日期的内容......

macros haxe

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

将build.prop推送到/system/build.prop

我编辑了build.prop,现在我的手机无法启动.我使用adb拉了build.prop,现在我有了正确的build.prop文件

我需要的是使用adb推送build.prop.

首先尝试:只读文件系统

当我挂载系统时:

第二次尝试:Permision拒绝

在此输入图像描述

我能做什么?

android build adb

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

Haxe 中的代码覆盖率

假设我有一个这样的单元测试:

import haxe.unit.TestRunner;
import haxe.unit.TestCase;

class MyTests extends haxe.unit.TestCase {
    public function testSomething():Void {
        // ...
    }
    public function testSomethingElse():Void {
        // ...
    }
    public static function main():Void {
        var tr = new TestRunner();
        tr.add(new MyTests());
        tr.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,在运行测试之后,我想分析我的代码的哪些行经过了测试,哪些没有经过测试(代码覆盖率)...或者至少查看在测试运行期间执行了某个类的哪些函数(只是为了防止出现这种情况)我没有忘记测试任何功能)。我怎样才能做到这一点?

code-coverage haxe

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

在haxe中获取编译目标语言

我知道,我可以做点什么

public static function getTarget():String {
    #if flash
    return "Flash";
    #elseif java
    return "Java";
    //... some more elseif clauses ...
    #end
}
Run Code Online (Sandbox Code Playgroud)

为了检测haxe中的目标语言(请参阅http://old.haxe.org/doc/snip/gettarget).然而,每当社区添加新的目标编程语言(好吧,这不是那么频繁)时 - 我需要添加另一个elseif子句以"支持/检测"该语言......

所以我想知道,如果有某种预定义的宏/函数,它将目标语言作为字符串返回:

trace("This is a " + getTargetLanguage() + " program!");
Run Code Online (Sandbox Code Playgroud)

haxe

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

在Haxe有某种退出声明吗?

在haxe中有某种退出声明吗?喜欢

import sys
sys.exit(0)
Run Code Online (Sandbox Code Playgroud)

在Python或

System.exit(0);
Run Code Online (Sandbox Code Playgroud)

在Java?

PS:只需要这个sys目标......

haxe

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

在Haxe中查找并​​列出文件夹中的所有文件/文件夹

这个问题与这些问题基本相同

但是有没有办法在Haxe的sys目标平台上执行相同的操作,而无需运行ls/ dirvia sys.io.Process和解析结果?

haxe

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

所有方格的总和在1到100之间?

为我的计算机科学课做一个作业,并不能完全弄清楚我做错了什么.我必须编写一个程序,将所有方块添加到1到100之间(1,4,9,16,25,36,49,64,81,100)作为赋值的一部分,我需要使用"while "声明,所以没有"for"声明会有所帮助.我目前的代码如下.

import java.util.Scanner;

public class While42B {
    public static void main(String []args ) {
        Scanner reader = new Scanner(System.in);
        int n = 1;
        int sum = 0;
        while (n <= 100) {
            n = (n*n);
            n++;

            sum = (sum + n); 
        }
        System.out.println(sum);
    }
}
Run Code Online (Sandbox Code Playgroud)

我从GUI获得的回报是

710

非常感谢任何帮助,谢谢!

java

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

Haxe中的HashSet类

HashSet在Haxe中是否有预定义的类,类似于

s = set()
Run Code Online (Sandbox Code Playgroud)

在Python或

import java.util.HashSet;
Run Code Online (Sandbox Code Playgroud)

在Java?

我知道,我可以简单地使用haxe.ds.HashMap以便快速实现这样的一套,但是我很好奇我是否真的需要这样做...

haxe

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

haskell:debugging << loop >>异常

为了练习Haskell,我实现了Fermat的分解方法(参见https://en.wikipedia.org/wiki/Fermat%27s_factorization_method).但是,当我运行我的程序时,Haskell一直告诉我:

$ ./fermat 7
fermat: <<loop>>
Run Code Online (Sandbox Code Playgroud)

所以看来,我的代码中存在无限循环(cmp.http ://www.haskell.org/pipermail/haskell-cafe/2013-June/108826.html).任何人都可以给我一个提示,我做错了什么?

另外我想扩展一下如何调试Haskell代码的问题有关如何调试此特定异常的提示.

import Data.List
import System.Environment
import Debug.Trace

isQuad :: Integer -> Bool
isQuad x = a == b
    where
        a = ceiling $ s
        b = floor $ s
        s = sqrt (fromIntegral x :: Double)

test :: Integer -> Integer -> Integer -> Bool
test nr n s = trace(show nr ++ " " ++ show n ++ " " ++ show s)
    isQuad( …
Run Code Online (Sandbox Code Playgroud)

haskell

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

标签 统计

haxe ×6

adb ×1

android ×1

build ×1

code-coverage ×1

haskell ×1

java ×1

macros ×1

python-2.x ×1

python-3.x ×1