有没有我可以这样运行的程序:
py2py.py < orig.py > smaller.py
Run Code Online (Sandbox Code Playgroud)
其中orig.py包含带有注释和doc字符串的python源代码,而small.py包含相同的,可运行的源代码,但没有注释和doc字符串?
最初看起来像这样的代码:
#/usr/bin/python
"""Do something
blah blah...
"""
# Beware the frubnitz!
def foo(it):
"""Foo it!"""
print it # hmm?
Run Code Online (Sandbox Code Playgroud)
那么看起来像这样:
def foo(it):
print it
Run Code Online (Sandbox Code Playgroud) 我有一个IF语句,它包含两个单独的函数调用,将值传递给两个变量.显然,如果两个值都不是'FALSE',则执行代码块:
<?php
class MyValidater {
static function validateString($string) {
if (preg_match("/[A-Za-z]+/", $string)) {
return $string;
} else {
return false;
}
}
}
$firstName = "Daniel";
$surname = "Simmons";
// Dodgy IF statement
if ($first = MyValidater::validateString($firstName) && $second = MyValidater::validateString($surname)) {
print("Success: $first $second");
} else {
print("Fail: $first $second");
}
?>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,$ first和$ second变量应该包含在静态方法validateString成功验证后的$ firstName和$ surname中保存的值.
但是,两个变量的值最终结束:$ first ='1'和$ second ="Simmons".
'1'应该是"Daniel",但由于某种原因,$ first传递的值为'1'或TRUE.如果你交换两个赋值语句,以便首先计算$ second,那么你最终会得到与之前相反的结果.$ second ='1'和$ first ="Daniel"
任何人都可以解释为什么从类方法返回的字符串值"Daniel"只被改为条件语句的第一部分的int'1'?我通过PHP文档快速查看但无法找到解释.
目前,解决方法是将静态方法的返回值更改为true/false,然后在成功时使$ first = $ firstName等等.但这涉及更多的代码,我宁愿找出为什么这种方式不起作用.
我有一个想法,在一个有一些新增功能的实时比分网站上工作,但是在尝试使用其中之前,我想知道这些网站从何处获取数据?
谢谢你的回答.
我们的一个产品实现了以下单向Web服务结构:
Server <--------------------- Middleware <---------------- Client
SOAP over JMS (queue) SOAP over HTTP
Run Code Online (Sandbox Code Playgroud)
在此模型中,客户端通过HTTP将SOAP消息发送到我们的中间件(Progress SonicMQ).消息被SonicMQ推送到JMS队列,我们的服务器从那里获取它们.但是,正如您所看到的,服务器不会向客户端发送响应(异步JMS).
我们希望为此模型实现响应通道.通常建议的解决方案是在中间件中创建临时replyTo-queue(动态),允许服务器向该队列发送响应.然后,客户端可以获取响应并关闭replyTo队列.这听起来很方便,但不幸的是我们的客户端通过纯HTTP而不是JMS运行,因此他们的客户端无法轻松设置replyTo队列.
在这种混合HTTP/JMS SOAP模型中实现响应通道的一种方法是配置中间件以在每个成功的SOAP接收上打开replyTo队列,将replyTo-queue和sender信息附加到SOAP消息并将消息推送到队列,服务器将获取它.在接收并处理消息之后,服务器可以向中间件中的指示的replyTo队列发送响应.最后,中间件将通过使用SOAP消息中的数据(在首次接收请求时在中间件过程中插入的数据)通过HTTP将响应(SOAP)发送回原始客户端.
虽然有可能,但这听起来有点像hacky.所以问题是:在我们的案例中实现这种请求/响应模型的任何更清晰的方法?服务器端已用Java实现.
解决方案:
Progress SonicMQ支持"内容回复发送"HTTP Acceptor,它允许轻松发送JMS回复.内容回复发送接受器以下列方式工作:
如果消费者(在我们的情况下是"服务器")失败并且没有发送回复导致超时,Sonic的HTTP Acceptor会向客户端发送HTTP消息,指示超时.这是SonicMQ中非常标准的功能.我想它也存在于其他产品中.
这允许在"服务器"端使用标准SOAP over JMS(参见skaffman的答案),避免在中间件中进行任何自定义编程.
我仍然在JMS模型中看到一些问题,但这肯定是一种改进.
更新2009-11-05:
在研究了这个问题之后,事实证明我对HTTP < - >中间件< - > JMS的怀疑是相关的.
这个模型中存在一些关键问题.具有中间件的同步异步模型简单不方便.要么两端都实现JMS连接(应该摇摆),要么两端都使用HTTP.混合它们只会导致头痛.在这两者中,SOAP-over-HTTP比SOAP-over-JMS更简单,更受支持.
再一次:如果你正在设计这种系统......不要.
我正在使用Grammarian的ObjectListView.我将旧的列表视图更改为了,但我所做的只是填写项目.但是当应用程序启动并且我的鼠标在列表视图上时,它会立即抛出异常:
System.InvalidCastException was unhandled
Message="Unable to cast object of type 'System.Windows.Forms.ListViewItem' to type 'BrightIdeasSoftware.OLVListItem'."
Source="ObjectListView"
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
如果这很重要,我也使用Win7.
编辑:
我用字典.看起来我需要使用SetObjects方法而不是添加项目.
好的,这很棒,但我只是使用dict.Value集合.我不想通过listview修改数据,只显示.所以我只有一列,列出了所有字符串.这可能吗?
我很感激一个小样本.
如何在Qt中叠加小部件?
我想创建一些小部件并将它们放置在布局之外,而是在更改其他小部件的几何体时调整它们的大小和位置.
像屏幕截图上的按钮:
在AJAX,JQUERY,php中是否有任何免费脚本可用于在线客户支持
喜欢有自己的聊天窗口......
谢谢
我正在用Delphi 2009编写一个小应用程序来编辑HTML文件.同
HypRef := '../../photos/myjpg.jpg'
If FileExists(ExpandFileName(HypRef)) then ...
Run Code Online (Sandbox Code Playgroud)
我可以找出该文件是否存在.如果FileExists给出否定答案,是否有找到正确相对路径的函数?
该标准明确规定main有两个有效(即保证有效)的签名; 即:
int main();
int main(int, char*[]);
Run Code Online (Sandbox Code Playgroud)
我的问题很简单,以下是合法的吗?
int main(const unsigned int, const char* const* argv);
Run Code Online (Sandbox Code Playgroud)
我的测试中说"是",但我不能确定的答案,因为我不能超载main改变int来unsigned int以及非顶层const的argv -ness?如果我是,那显然是禁止的.
那么,这些修改是否可以保证在符合标准的编译器上工作?
想象一下这个子程序:
sub test(&&)
{
my $cr1 = shift;
my $cr2 = shift;
$cr1->();
$cr2->();
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以称之为:test(\&sub1,\&sub2),但我怎么称它为:
test { print 1 },{ print 2 };
Run Code Online (Sandbox Code Playgroud)
如果我说子程序只需要一个&,那么发送一个块就行了.我不知道如何让它与2一起工作.
如果我尝试像那样运行它,我得到:
Not enough arguments for main::test at script.pl line 38, near "},"
Run Code Online (Sandbox Code Playgroud)
编辑:没有办法没有调用sub?