小编Raf*_*ler的帖子

如何将装饰器应用于lambdas?

是否有任何语法在Python中的lambda函数上使用装饰器?例:

def simpledecorator(f):
     def new_f():
         print "Using a decorator: "
         f()
     return  new_f

@simpledecorator
def hello():
    print "Hello world!"
Run Code Online (Sandbox Code Playgroud)

结果输出:

>>> hello()
Using a simple decorator:
Hello world!
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试使用lambda时:

@anotherdecorator
f = lambda x: x * 2
Run Code Online (Sandbox Code Playgroud)

我明白了:

  File "<stdin", line 2
    f = lambda x: x * 2
    ^
 SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我觉得这可能是一个很好的方法,通过允许语句"注入"它们使lambdas更加通用.但如果存在这样的功能,我不知道语法是什么.

python syntax lambda decorator

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

端口8080已在使用中出错

任何人都可以帮我解决以下情况吗?

我正在尝试使用java生成我的第一个网站,并使用在Ubuntu 9.10上运行的Eclipse Galileo.由于我生成了我的第一行代码,所以我没有看到网络.我尝试运行程序的所有时间都会出现以下错误:

Tomcat v6.0 Server在localhost上所需的几个端口(8080,8080)已在使用中.服务器可能已在另一个进程中运行,或者系统进程可能正在使用该端口.要启动此服务器,您需要停止其他进程或更改端口号.

我已经阅读了很多关于改变我的tomcat端口的方法(从8080传递到80),但这是不可能的.我读了一些论坛,其中解决此问题的方法是将文件内容为tomcat的服务器编号,这是一个XML文件,但是当我打开文件夹时,没有带有名称的xml文件.

我已经使用sudo lsof -n -P -i:,启动和关闭tomcat 来探索端口,但错误仍然存​​在.

我能做什么?

非常感谢.

eclipse tomcat6 ubuntu-9.10

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

Python:"全局名称'时间'未定义"

我在python中写了一个愚蠢的程序给朋友打印"我们是那些说'Ni'的骑士!".然后睡3秒钟,然后打印"Ni!" 使用random模块的uniform()方法以随机间隔进行20次.这是我的代码:

from time import sleep
import random

def knights_of_ni():
    generator = random.Random()
    print "We are the knights who say 'ni'."
    sleep(3)
    for i in range(0,20):
        print "Ni!"
        sleep(generator.uniform(0,2))
Run Code Online (Sandbox Code Playgroud)

我试着在解释键入导入此模块from silly import knights_of_ni() import silly,然后调用与任何功能knights_of_ni()silly.knights_of_ni()(),但我总是得到相同的异常:

 NameError: global name 'time' is not defined
Run Code Online (Sandbox Code Playgroud)

导致此错误的原因是什么?我如何修复我的代码?

编辑:坦率地说,我不确定我遇到了什么问题.我第二天早上运行了代码并且工作得很好.我发誓昨晚代码产生了错误...无论如何,感谢您的洞察力.

python time

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

用于单击Tkinter Treeview小部件项的命令?

我正在使用Tkinter创建GUI,GUI的主要部分是两个Treeview对象.当单击一个项目(即目录)时,我需要更改Treeview对象的内容.

如果Treeview项目是按钮,我只能设置command为适当的功能.但我找不到"on_click"为Treeview项创建行为的方法.

Treeview选项,方法等使我能够将命令绑定到特定项并执行该命令"on_click"

python treeview user-interface tkinter

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

如何在两个进程之间发送带管道的整数!

我试图在POSIX系统中发送带管道的整数,但write()函数正在发送字符串或字符数据.有没有办法用管道发送整数?

问候

c linux ipc pipe

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

有没有办法在ocaml中打印用户定义的数据类型?

我无法使用,print_endline因为它需要一个字符串,我不(想)我有任何方法可以将我非常简单的用户定义数据类型转换为字符串.如何检查这些数据类型的变量值?

ocaml

15
推荐指数
2
解决办法
6703
查看次数

为Random.nextInt()指定max和min?

可能重复:
Java:生成范围内的随机数

我想在逻辑范围内生成一个随机int.所以,比如说,我正在编写一个程序来"滚动"具有指定数量边的骰子.

public int rollDice() {
     Random generator = new Random();
     return generator.nextInt(sides);
}

现在的问题变成,这将返回值两侧和零之间的包容性,这是没有意义的,因为大多数的骰子从1到6,9,等等.所以,我怎么可以指定nextInt应该在1和侧面的数量之间的合作?

java random

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

如何在R脚本中迭代文件名?

一个非常简单的R脚本将升序行索引添加到文本文件"0.txt",并为其添加标题"time".之后,数据被写入文件"0-edit.txt"

data<-read.table("0.txt", header=TRUE,sep=",",row.names= NULL);
colnames(data)[1] = "time"
write.table(data,quote=FALSE,sep=", ","0-edit.txt");
Run Code Online (Sandbox Code Playgroud)

假设我在同一文件夹中有4个名为0.txt,1.txt,2.txt,...的文件,我如何使用计数器(或其他东西)在我的脚本中迭代这些文件名?

filenames for-loop r file

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

最有趣/最有用的Java类?

我已经使用Java一年左右了,我不断发现自己用语言发现了新东西.有趣的是,大多数这些很酷的东西不是来自第三方API或库,而是来自JDK中提供的类.

所以我想知道,部分是出于好奇,部分出于对他人和我自己的教育,JDK中哪些课程最有趣/最有用/最喜欢?

java class

8
推荐指数
2
解决办法
9325
查看次数

PHP变长参数?

在Python和其他人中,可变长度参数列表有特殊的语法:

def do_something(*args):
    # do something

do_something(1, 2, 3, 4, 5, ...) # arbitrarily long list
Run Code Online (Sandbox Code Playgroud)

我正在阅读PHP手册,它说:

PHP 4及更高版本支持用户定义函数中的可变长度参数列表.使用func_num_args(),func_get_arg()和func_get_args()函数非常简单.

不需要特殊的语法,并且参数列表仍然可以使用函数定义显式提供,并且将正常运行.

我得到了第一部分.您可以将任意数量的参数传递给不带参数的函数,然后将它们作为数组使用func_get_args(),等等.尽管如此,我并没有真正理解第二部分所说的内容.

所以,我的问题是,是否有一些特殊的可变长度参数语法,或者一些我不知道的最佳实践?手册建议的方法充其量只是kludgey并使你的功能似乎没有参数(除非我做错了).我根本不应该尝试使用这种语言功能吗?

php function variadic-functions

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