小编ken*_*der的帖子

我可以使用装饰器来改变Python中函数的局部范围吗?

有没有办法写一个装饰器,以便以下工作?

assert 'z' not in globals()

@my_decorator
def func(x, y):
   print z
Run Code Online (Sandbox Code Playgroud)

编辑:从anwser搬来

回答hop的"为什么?":语法糖/ DRY.

它不是关于缓存,而是基于x和y的值计算z(和z1,z2,z3,...).

我有很多相关的功能,我不想写

z1, z2, z3=calculate_from(x, y)
Run Code Online (Sandbox Code Playgroud)

在每个单一功能的开头 - 我会在某处弄错.如果这是c我用cpp做这个(如果这是lisp,我会用宏来做...),但我想看看装饰者是否可以做同样的事情.

如果它有帮助,我几乎肯定会将装饰器称为"precalculate_z",它肯定不会成为任何公共API的一部分.

我也许可以通过使用类基础结构获得类似的效果,但我想看看它是否可以用于原始函数.

python decorator

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

iPhone上的Web应用程序 - 使其看起来像本机iPhone应用程序

我看到一些网页在iPod Touch(和iPhone)上显示不同 - 它们几乎看起来像本机的iPhone应用程序.

认为这可以使用样式完成,并且可选地,根据请求中的用户代理在服务器端呈现不同的HTML.

那么,我该如何获得这种效果呢?而且,是否有任何iPhone OS浏览器的模拟器,所以我可以在真正启动它之前测试我的应用程序,看看它是否显示?

html css browser iphone web-applications

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

在多服务器环境中运行django站点 - 如何处理会话?

我的django驱动的站点位于基于Apache的负载均衡器后面.还有一个处理静态文件请求的服务器,但这很简单.

困扰我的是如何处理负载均衡器可以抛给任何应用程序服务器的用户?它们都共享相同的数据库集群(它是智能的吗?或者我也应该在这里分开它?),所以我唯一需要关心的是会话.

现在,会话存储在内存中,以提高性能.我宁愿把它们留在那里,所以我需要做的是确保同一个用户总是会遇到同一个app-server.

我想到了一些简单的解决方案.

1)使其基于IP.可以说,奇怪的IP号码命中服务器A甚至数字命中了B.但是,如果用户位于代理后面或者IP经常更改会怎样?

2)当请求到达负载平衡服务器时,我可以尝试检查它是否有cookie并查看哪个服务器应该处理它.是否可能/确实有意义?

3)我知道J2EE解决方案,使用mod_proxy_ajp,处理这种情况,虽然我不知道幕后发生了什么.Django可以使用那里的东西吗?

或者也许还有其他一些方法来集群化Django呢?

django session application-server

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

如何检查是否有performSelector:等待执行?

在我的iPhone应用程序中,我有几个地方可以做

[object performSelector: withObject: afterDelay:]

呼叫.所有都导致相同的方法.现在,在那个方法中,我想只在最近调用它时执行一些代码.如果它是第一个,我可以做,[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(thisMethod) object:nil]并确保它被调用一次.

但是,有没有办法判断是否有其他方法调用等待执行?

我可以在这个类中使用一个计数器,每次我在延迟后设置此执行时都会递增,然后在每次调用开始时递减它,并且只有在此计数器归零时才执行代码.但我想知道这是否是最好的/可接受的方法......

iphone cocoa cocoa-touch objective-c performselector

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

Autolayout - 平均分配6个视图

我想在一个视图中放置6个对象(按钮).但是,他们应该遵循一些限制:

在此输入图像描述

  • 两个顶部按钮应与superview(A)具有相同的垂直距离
  • 两个底部 - 相同(C)
  • 中间的两个中心应该在superview的中心线上
  • 所有按钮(E)之间的垂直距离应相同
  • 最后但并非最不重要 - 按钮应为方形(因此宽度和高度应相同)
  • A = C
  • B = D

是否有可能只在IB中产生这种效果,还是应该使用一些额外的代码来约束?

xcode interface-builder autolayout

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

是否有源控制系统允许跟踪文件名更改?

所以,我一直和我的cvs存储库一起生活了一段时间.虽然有一件事我想念 - 如果我重命名已存在于存储库中的文件,我需要从那里删除一个旧名称并添加新文件.因此,我放弃了所有的变化历史.有时需要在alredy现有项目中重命名文件.

从我看到的,cvs/svn无法处理这样的事情,或者我错了?如果没有,你会推荐哪些其他源控制系统,允许重命名文件?

svn cvs version-control

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

在Web应用程序中,如何使数据库结构保持最新?

如果在部署应用程序后数据发生更改,您如何使数据库保持最新?

我的意思是,你可以添加或删除表,这是一个简单的任务.改变现有的表也很简单.但是如果你经常改变结构,你如何控制它呢?

我曾经在数据库中保留一个包含当前数据库版本的表.然后每次升级都是一个完成其工作的SQL文件 - 创建新表,添加列或移动数据.文件是以这些版本命名的 - 所以如果我的升级脚本获得了数据库版本10,它只是将11.sql中的所有文件都带到N.sql并同时应用它们中的每一个递增数据库版本号.

这似乎工作正常,但我想知道 - 你的策略是什么?
如果我在一个"补丁"中对一个表进行规范化,那么这个系统似乎并不完美,之后我再次将其归一化为无论什么原因.然后它完成了两次.

但是,每次我改变一些东西时写一个完整的升级脚本似乎很痛苦,容易出错.至少更多这样的原子变化.

此外,我可以预期不同的客户可以随时运行不同的数据库版本,所以我真的应该有办法从任何一点上升.

database model

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

Django,Rails路由......点?

我是网络开发(和大学)的学生,所以我很抱歉,如果这听起来很天真和冒犯,我当然不是那种意思.我的经验是PHP和一个小项目(一个美化的班次日历)我希望学习一个更高级别的框架来减轻代码负担.到目前为止,我看了CakePHP Symfony Django和Rails.

使用PHP,URL非常简单地映射到文件,它"只是工作".服务器很快,直观.但是对于所有这些框架,有一种倾向于通过使URL映射到不同的函数并将参数路由到不同文件中的不同变量来"漂亮"URL.

我正在阅读的"The Rails Way"一书承认,这是一个很慢的狗,并且是大型项目中大多数表现痛苦的原因.我的问题是"为什么要把它放在首位?"?在url-maps-to-a-file范例(或mod_rewrite到单个文件)中是否有特定点需要正则表达式和复杂的路由方案?我不想使用它们而错过了什么?

提前致谢!

django routing ruby-on-rails url-mapping

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

django-cms中的默认内容插件

我开始使用django CMS项目.它很棒,采用模块化设计而构建......但实际上我们的客户想要的是更简单:

在这里,在django CMS中,每个页面都可以包含许多内容"插件" - 无论是文本,图像还是其他.但是客户想要为每个新页面自动激活,选择和创建文本插件 - 并在该文本字段上工作.这对他们来说更简单.

有没有人在使用这个CMS系统之前做过类似的事情?或者,您可以推荐任何其他简单的django CMS解决方案?

django content-management-system django-cms

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

从Xcode重新安装应用程序时,iPhone模拟器报告错误

我正在使用Xcode 6和iOS模拟器版本8.1(版本550.3).

当我在Xcode中选择"Build and Run"时,如果应用程序尚未安装在模拟器中,则一切正常.但是,如果是,我在Xcode中收到以下错误:

无法在模拟器中运行应用程序运行 时遇到错误(Domain = LaunchServicesError,Code = 0)

并且模拟器的日志显示如下:

less ~/Library/Logs/CoreSimulator/CoreSimulator.log
Nov  6 11:53:47 Yggdrasil.local com.apple.dt.Xcode[4389] <Error>: 
Error Domain=LaunchServicesError Code=0 "The operation couldn’t be completed.
 (LaunchServicesError error 0.)" UserInfo=0x7fa697742360 
{Error=PackagePatchFailed, ErrorDescription=Could not hardlink copy 
/Volumes/UsersData/Users/kender/Library/Developer/CoreSimulator/Devices/AAD57C40-E208-4964-B63A-46B968B3EB36/data/Containers/Bundle/Application/FEE2DEB4-AEE3-48B7-BE71-5B027259C6FD/Baby Feeding.app 
to /Volumes/UsersData/Users/kender/Library/Developer/CoreSimulator/Devices/AAD57C40-E208-4964-B63A-46B968B3EB36/data/Library/Caches/com.apple.mobile.installd.staging/temp.P8QJEE/extracted/Payload/Baby Feeding.app
 with manifest /Volumes/UsersData/Users/kender/Library/Developer/CoreSimulator/Devices/AAD57C40-E208-4964-B63A-46B968B3EB36/data/Library/Caches/com.apple.mobile.installd.staging/temp.P8QJEE/extracted/com.apple.deltainstallcommands.com.owlcoding.babyfeeding}
Run Code Online (Sandbox Code Playgroud)

(/Volumes/UsersData/Users/kender是我的$HOME).

我试图删除所有模拟器(从DevicesXcode中的窗口重新添加它们 - 没有运气.

我删除了整个〜/ Library/Developer目录并允许Xcode重新创建它 - 之后也是同样的问题.

所以现在我坚持使用构建和运行 - >进行更改 - >删除应用程序 - >构建和运行流程,哪种糟糕...任何人遇到这样的问题并找到解决方案,或者你们有一些指针对我来说......

iphone xcode ios ios-simulator

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