Python Lambda在一个循环中

考虑下面的代码片段: # directorys == {'login': <object at …>, 'home': <object at …>} for d in directorys: self.command["cd " + d] = (lambda : self.root.change_directory(d)) 我期望创build一个两个函数的字典如下: # Expected : self.command == { "cd login": lambda: self.root.change_directory("login"), "cd home": lambda: self.root.change_directory("home") } 但它看起来像生成的两个lambda函数是完全一样的: # Result : self.command == { "cd login": lambda: self.root.change_directory("login"), "cd home": lambda: self.root.change_directory("login") […]

为什么VB.Net中的每个表单都有一个默认的实例,但在C#中却没有?

我只是好奇,知道有(名称)属性,它代表了表单类的名称。 此属性在名称空间内用于唯一标识Form是实例的类,在Visual Basic的情况下,用于访问表单的默认实例。 现在,这个默认实例来自哪里,为什么不能C#有一个等效的方法。 也例如在C#中显示一个表单,我们做这样的事情: // Only method Form1 frm = new Form1(); frm.Show(); 但在VB.Net中,我们有两种方法来做到这一点: ' First common method Form1.Show() ' Second method Dim frm As New Form1() frm.Show() 我的问题来自这第一种方法。 什么是Form1 ,它是Form1的实例还是Form1类本身? 现在,如上所述,表单名称是VB.Net中的Default实例。 但是我们也知道Form1是一个在Designer定义的类,所以实例和类名的名字是如何相同的呢? 如果Form1是一个类,则不存在名为Show()的(Static \ Shared)方法。 那么这个方法从哪里来? 他们在生成的IL中有什么不同? 最后,为什么C#没有这个相同的function呢?

像gitolite这样的程序如何工作?

我很好奇gitolite这样的程序是如何工作的,特别是它们如何与SSH协议交互以提供量身定制的体验。 有人可以提供一个例子,说明我可以如何完成类似以下的内容,以及在哪里可以更多地了解这个主题? → ssh git@github.com PTY allocation request failed on channel 0 Hi <username>! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed. 一个侧面的问题:我的主要语言是JavaScript。 是否有可能完成我想要的NodeJS?

string计数与重叠的事件

计算给定string出现次数的最佳方法是什么,包括Python中的重叠? 这是最明显的方法: def function(string, str_to_search_for): count = 0 for x in xrange(len(string) – len(str_to_search_for) + 1): if string[x:x+len(str_to_search_for)] == str_to_search_for: count += 1 return count function('1011101111','11') returns 5 ? 或者有没有更好的方法在Python?

为什么运行Flask dev服务器运行两次?

我正在使用Flask开发一个网站,而在开发中,我使用以下文件运行烧瓶: #!/usr/bin/env python from datetime import datetime from app import app import config if __name__ == '__main__': print '################### Restarting @', datetime.utcnow(), '###################' app.run(port=4004, debug=config.DEBUG, host='0.0.0.0') 当我启动服务器或由于文件已更新而自动重新启动时,它总是显示两行的打印行: ################### Restarting @ 2014-08-26 10:51:49.167062 ################### ################### Restarting @ 2014-08-26 10:51:49.607096 ################### 虽然这不是一个真正的问题(其余部分按预期工作),但我只是想知道为什么它会这样呢? 有任何想法吗?

CLR 4.0中单个对象的大小仍然限制在2 GB?

据我了解,在.NET中的单个实例有2 GB的限制。 由于我迄今为止主要在32位操作系统上工作,所以我没有付出太多的关注。 在32上,反正它或多或less是一个人为的限制。 不过,我很惊讶地发现这个限制也适用于64位.NET 。 由于List<T>等集合使用数组来存储项目,这意味着运行在32位上的.NET应用程序与在64位上运行的相同应用程序相比,能够在列表中容纳两倍的引用types项目。 这是令人惊讶的IMO。 有谁知道这个限制是否在CLR 4.0中解决(我目前没有安装4.0版本)。

h:commandButton / h:commandLink不能在第一次点击时使用,只能在第二次点击时使用

我们有一个ajax导航菜单,更新一个dynamic的包括。 包含文件有各自的forms。 <h:form> <h:commandButton value="Add" action="#{navigator.setUrl('AddUser')}"> <f:ajax render=":propertiesArea" /> </h:commandButton> </h:form> <h:panelGroup id="propertiesArea" layout="block"> <ui:include src="#{navigator.selectedLevel.url}" /> </h:panelGroup> 它工作正常,但包含文件中的任何命令button不起作用的第一次点击。 它只能第二次来回运行。 我发现这个问题commandButton / commandLink / ajax动作/侦听器方法没有被调用或input值没有更新 ,我的问题是在第9点描述。我明白,我需要明确包括<h:form>的ID在include <f:ajax render>来解决它。 <f:ajax render=":propertiesArea :propertiesArea:someFormId" /> 然而在我的情况下,表单ID是事先不知道的。 此外,这种forms将不会在最初的情况下可用。 有没有解决上述情况?

* ngIf和* ngFor在相同的元素上导致错误

我在试图在同一个元素上使用Angular的*ngFor和*ngIf时遇到了问题。 当试图遍历*ngFor中的集合时,集合被视为null ,因此在尝试访问模板中的属性时失败。 @Component({ selector: 'shell', template: ` <h3>Shell</h3><button (click)="toggle()">Toggle!</button> <div *ngIf="show" *ngFor="let thing of stuff"> {{log(thing)}} <span>{{thing.name}}</span> </div> ` }) export class ShellComponent implements OnInit { public stuff:any[] = []; public show:boolean = false; constructor() {} ngOnInit() { this.stuff = [ { name: 'abc', id: 1 }, { name: 'huo', id: 2 }, { […]

上传的图像仅在刷新页面后才可用

上传图片时,文件成功保存,path设置成功。 但是在提交表单之后,上传的图像不会立即显示。 只有当我重新加载页面时,才会显示上传的图像。 我正在保存上传的文件如下: InputStream is; try { File file = new File("C:\\****\\*****\\Documents\\NetBeansProjects\\EventsCalendary\\web\\resources\\images\\uploadPhoto.png"); is = event.getFile().getInputstream(); OutputStream os = new FileOutputStream(file); setUserPhoto("\\EventsCalendary\\resources\\images\\"+file.getName()); byte buf[] = new byte[1024]; int len; while ((len = is.read(buf)) > 0) { os.write(buf, 0, len); } os.close(); is.close(); } catch (IOException ex) { System.out.println(ex.getStackTrace()); } 为什么上传的图片只在重新加载页面后才显示,我该如何解决?

你如何在Java中设置“11th”,“21st”或“23rd”的月份? (有序指标)

我知道这会给我一个月的一天( 23 ): SimpleDateFormat formatDayOfMonth = new SimpleDateFormat("d"); 但是,如何在一个月的日子里设置一个序数指标 ,比如说Java中的11th 21st或23rd呢?