问题列表 - 第10494页

这些类型的python装饰器是如何编写的?

我想编写一个限制函数执行次数的装饰器,具体方法如下:


@max_execs(5)
def my_method(*a,**k):
   # do something here
   pass
Run Code Online (Sandbox Code Playgroud)

我认为写这种类型的装饰器是可能的,但我不知道如何.我认为一个函数不会是这个装饰者的第一个参数,对吗?我想要一个"普通的装饰器"实现,而不是一些带有调用方法的类.

这样做的原因是要了解它们的编写方式.请解释语法,以及该装饰器的工作原理.

python language-features decorator

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

htaccess规则转发/登录/和/登录到同一页面?

我在当前的.htaccess文件中有以下规则将/videos/login/请求重定向到/videos/login.php

RewriteRule login/ /videos/login.php
Run Code Online (Sandbox Code Playgroud)

如果我使用登录页面,http://mysite.com/videos/login/但是当我尝试使用http://mysite.com/videos/login(不使用斜杠)访问同一页面时,这可以正常工作,那么它会给我"找不到404页面"错误.

请告诉我.htaccess文件的正确规则是什么,以便任何请求http://mysite.com/videos/login/http://mysite.com/videos/login将指向相同的/videos/login.php页面.

谢谢

php apache .htaccess url-rewriting

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

MySQL:NULL vs""

在MySQL中使用default nulldefault ""用于文本字段更好吗?

为什么?

更新:我知道他们每个人的意义.我感兴趣的是考虑磁盘空间和性能更好.

更新2:嘿ppl!问题是"什么是更好用"而不是"每个意味着什么"或"如何检查它们"......

mysql

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

是否可以通过路径而不是GUID在托管项目中引用COM DLL?

我有一个托管(实际上是asp.net)项目,它引用了一个COM DLL.现在,.csproj中的引用如下所示:

<COMReference Include="thenameinquestion">
  <Guid>{someguidhere}</Guid>
  <VersionMajor>1</VersionMajor>
  <VersionMinor>0</VersionMinor>
  <Lcid>0</Lcid>
  <WrapperTool>tlbimp</WrapperTool>
</COMReference>
Run Code Online (Sandbox Code Playgroud)

这是有效的,但它有一个令人遗憾的结果,DLL需要在构建机器上注册,这意味着(除其他外)在同一构建机器上构建使用不同版本的DLL的项目的多个版本是不方便的.

MSDN显示ResolveComReference任务看起来它做的正确,但我的google-search-fu还不够好,无法提供其使用的实际示例.有可能做我想要的吗?我是在正确的轨道上吗?

.net com msbuild

10
推荐指数
2
解决办法
2796
查看次数

.NET/C# - Reflection - System.IO.File曾经使用过

有没有办法使用反射来完全"扫描"程序集,以查看是否曾使用过System.IO.File或System.IO.Directory?这些只是示例类.只是想知道是否有办法通过反射(vs代码分析)来做到这一点.

更新:见评论

.net c# reflection

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

调整图像大小以适合边界框

一个简单的问题,但由于某种原因,我今天无法弄清楚这一点.

我需要将图像调整到适合边框的最大可能尺寸,同时保持纵横比.

基本上我正在寻找填写此功能的代码:

void CalcNewDimensions(ref int w, ref int h, int MaxWidth, int MaxHeight);
Run Code Online (Sandbox Code Playgroud)

其中w&h是原始高度和宽度(in),新的高度和宽度(out)以及MaxWidth和MaxHeight定义图像必须适合的边界框.

c# algorithm image-manipulation image-processing

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

ON INSERT:无法添加具有已在使用的密钥的实体

我没有代码,上面的错误继续提示INSERT.DBML正在刷新!

异常详细信息:System.Data.Linq.DuplicateKeyException:无法添加具有已在使用的键的实体.

.net linq-to-sql

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

FastMM4说"块头已被破坏"

我有这个令人讨厌的虫子在过去消失了,但现在经过一段时间它又回来了.

我有两个TSam对象(派生自TPersistent)创建并加载到TAsmJob对象(从TObjectList派生).

在运行时,表单创建一个TStringGrid,然后创建AsmJob,它创建这两个SAM对象(并从每个对象的磁盘加载一些数据).AsmJob也被分配给网格.当表单被销毁时,Grid通过释放它来处理AsmJob,从而释放TSam对象.这是问题所在:第一个对象没有问题,但第二个对象在调用其继承方法(在Destroy析构函数中)时会死掉.

我在整个程序中使用FreeAndNil来释放对象.TSam对象不是NIL !!!!! 所以,这是第一次释放对象的尝试.甚至对象内部的数据也是一致的.

该计划的主干如下:

**Create:**

Form -> StringGrid
     -> AsmJob -> Sam1, Sam2
StringGrid.AsmJob:= AsmJob;


**Free:**

Form -> StringGrid -> AsmJob -> Sam1, Sam2
Run Code Online (Sandbox Code Playgroud)

我真的不明白在它被释放后我试图双重释放或覆盖对象的位置.


编辑:

我得到的一些错误:

  • FastMM在空闲块扫描操作期间检测到错误.FastMM在释放后检测到块已被修改.

  • FastMM在空闲块扫描操作期间检测到错误.块头已损坏.

详情:

The current thread ID is 0x19C, and the stack trace (return addresses) leading to this error is: 
402E77 [System][@FreeMem] 
4068DC [System][@DynArrayClear] 
405E2D [System][@FinalizeArray] 
405D31 [System][@FinalizeRecord] 
40432F [System][TObject.CleanupInstance] 
404272 [System][TObject.FreeInstance] 
404641 [System][@ClassDestroy] 
4D313E [UnitSam.pas][TSam.Destroy][297] 
4042BF [System][TObject.Free] 
4149ED [SysUtils][FreeAndNil] 
4D9C0A [UnitAsmJob.pas][UnitAsmJob][TAsmJob.Destroy][180]  
Run Code Online (Sandbox Code Playgroud)

我在IDE中启用了所有"调试"选项,包括"范围检查".此外,FastMM4设置为超级激进的调试模式.如果没有FastMM或者在调试器之外,程序运行得很好 - 但我知道这并不意味着错误不再存在.实际上它(可能)工作了一年多,直到我安装了FastMM.


编辑:

感谢大家.不,我感觉我正朝着好的方向前进.

程序的结构更复杂我只提供了保持原始帖子小的骨干.但是,它已经变大了:)所以,那些TSam对象用于从磁盘加载数据.每个对象中有一个文件.他们还在进行一些处理和数据验证.对于这些TSam中的每一个,我还有一个图形对象,在屏幕上(图形地)显示TSam对象中包含的数据.TStringGrid中的每一行也以TSam显示数据,但是以文本方式显示.

我有一个问题:如果我以较小的碎片打破程序以找出错误的位置,错误仍会出现?或者只能在此特定配置中出现?


回答"如何将AsmJob分配给TStringGrid,以便TStringGrid破坏AsmJob,你能告诉我们吗?" …

delphi delphi-7 fastmm memory-corruption

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

检测浏览器何时收到文件下载

我有一个页面,允许用户下载动态生成的文件.生成需要很长时间,所以我想显示一个"等待"指标.问题是,我无法弄清楚如何检测浏览器何时收到文件,所以我可以隐藏指标.

我正在以隐藏的形式发出请求,该请求POST到服务器,并针对其结果定位隐藏的iframe.这样我就不会用结果替换整个浏览器窗口.我在iframe上监听"加载"事件,希望在下载完成后它会触发.

我在文件中返回"Content-Disposition:attachment"标题,这会导致浏览器显示"保存"对话框.但浏览器不会在iframe中触发"加载"事件.

我尝试过的一种方法是使用多部分响应.因此它会发送一个空的HTML文件,以及附加的可下载文件.例如:

Content-type: multipart/x-mixed-replace;boundary="abcde"

--abcde
Content-type: text/html

--abcde
Content-type: application/vnd.fdf
Content-Disposition: attachment; filename=foo.fdf

file-content
--abcde
Run Code Online (Sandbox Code Playgroud)

这适用于Firefox; 它接收空的HTML文件,触发"load"事件,然后显示可下载文件的"Save"对话框.但它在IE和Safari上失败了; IE触发"加载"事件但不下载文件,Safari下载文件(名称和内容类型错误),并且不会触发"加载"事件.

一种不同的方法可能是调用启动文件创建,然后轮询服务器直到它准备就绪,然后下载已经创建的文件.但我宁愿避免在服务器上创建临时文件.

有没有人有更好的主意?

javascript mime http

464
推荐指数
11
解决办法
28万
查看次数

Java正则表达式中字符类交叉点的背后是什么?

Java的Regex.Pattern支持以下字符类:

[a-z&&[def]]
Run Code Online (Sandbox Code Playgroud)

它与"d,e或f"匹配,称为交集.

在功能上,这与以下内容没有区别:

[def]
Run Code Online (Sandbox Code Playgroud)

这在大型RE中更易于阅读和理解.所以我的问题是,除了在字符类上指定对类似CSG的操作的完全支持之外,交叉点有什么用?

(请注意,我理解像减法的效用[a-z&&[^bc]][a-z&&[^m-p]],我对交叉口专门询问如上介绍.)

java regex

11
推荐指数
1
解决办法
639
查看次数