我来自Java世界,您可以在其中隐藏变量和函数,然后使用反射对它们运行单元测试.我使用嵌套函数来隐藏类的实现细节,以便只显示公共API.我正在尝试针对这些嵌套函数编写单元测试,以确保在开发时不会破坏它们.我试过调用一个嵌套函数,如:
def outer():
def inner():
pass
outer.inner()
Run Code Online (Sandbox Code Playgroud)
这会导致错误消息:
AttributeError:'function'对象没有属性'inner'
有没有办法让我对这些嵌套函数编写单元测试?如果没有,有没有办法通过为__添加前缀来触发名称,为类变量触发函数名称?
我有一排按钮,它们都创建了一个pdf文件,我想在新标签页中打开它.这样,按钮页面保持在顶部,pdf打开以进行打印.为了防止单击按钮两次我禁用按钮,就像这样(我使用python):
<input type='submit' value='Factureren' name='submitbutton' id='%s'
onclick="javascript:document.getElementById('%s').disabled=true;
document.getElementById('%s').className='button_disabled';"> % ((but_id,) *3)
Run Code Online (Sandbox Code Playgroud)
在FF3中,这工作正常,即提交表单,执行脚本,然后禁用按钮.在IE中,按钮只是禁用,但不执行表单脚本.
这个IE问题有解决方案吗?
我一直在使用TortoiseSVN,svn和subclipse,我认为我理解基础知识,但有一件事一直困扰着我:合并引入了不需要的代码.这是步骤.
trunk/test.txt@r2.使用"A"和返回创建了一个测试文件:
A
[EOF]
Run Code Online (Sandbox Code Playgroud)
branches/TRY-XX-Foo/test.txt@r3.分支trunk到TRY-XX-Foo:
A
[EOF]
Run Code Online (Sandbox Code Playgroud)
branches/TRY-XX-Foo/test.txt@r4.做出了不必要的改变TRY-XX-Foo并承诺:
A
B (unwanted change)
[EOF]
Run Code Online (Sandbox Code Playgroud)
branches/TRY-XX-Foo/test.txt@r5.做了一个重要的错误修复TRY-XX-Foo并承诺:
A
B (unwanted change)
C (important bug fix)
[EOF]
Run Code Online (Sandbox Code Playgroud)
现在,我想只将重要的bug修复合并到trunk.所以,我运行merge进行修订4:5.我在工作目录中的最终结果是冲突.
trunk/test.txt:
A
<<<<<<< .working
=======
B (unwanted change)
C (important bug fix)
>>>>>>> .merge-right.r5
[EOF]
Run Code Online (Sandbox Code Playgroud)
违背我的意愿,Subversion现在已将"不需要的更改"包含在中继代码中,我需要手动清除它们.当在分支中进行多个连续更改时,是否有一种方法只合并指定的修订版本?
问题的一部分是B(unwated change)包含在.merge-right中,我无法区分它来自哪个版本.我通常使用TortoiseMerge,这是它的外观.

我打算动态地在Web服务器上生成Word文档.在c#中有这样做的好方法吗?我知道我可以编写Word来做这个,但我更喜欢另一种选择.
给定一个表X和一个视图Y(与X具有相同的结构)有一种方法可以将X重命名为Z,将Y重命名为X,这样任何查询都不会看到任何名为X的内容吗?重命名X并创建视图也是有效的.
重点是,作为模式迁移计划的一部分,将旧表替换为模拟新版本旧版本的视图,以便两组客户端代码可以同时运行.
MySQL是我的选择,但其他人的信息也很有用.
我试图找出如何在asp.net mvc中使用usercontrols.我知道如何将一个usercontrol添加到视图以及如何将数据传递给它.我无法弄清楚的是,如何在不必检索和传递每个控制器中的数据的情况下执行此操作?
例如,如果我有一个用户控件在站点中的几个但不是所有页面上显示最新的帖子,我该如何编写控制器以便我获取该用户控件的数据并将其从一个用户控件传递给用户控件放置在网站中而不是在使用用户控件的每个不同控制器中获取和传递数据?
我不确定这是否有意义.是否有更好或推荐的方法来处理要在多个页面上显示的"孤岛"数据?
我来自Web表单,在那里我可以编写一个用户控件,它可以独立于其使用的任何页面,从而获得自己的数据和显示数据.
获得如下功能的最佳方法是:
def getNearest(zipCode, miles):
Run Code Online (Sandbox Code Playgroud)
也就是说,给定一个zipcode(07024)和radius,返回该半径范围内的所有zipcodes?
鉴于我只有一台显示器,调试使用整个屏幕的程序(例如DirectX应用程序)的最佳方法是什么?在这种情况下,诸如逐步调试器之类的工具似乎毫无用处.此外,打印到控制台的效率不高,因为只有在应用程序终止后才能查看控制台.
我一直在想这个问题.正如标题所说,哪个更快,实际功能还是简单地提升到半功率?
UPDATE
这不是过早优化的问题.这只是底层代码实际工作原理的问题.Python代码的工作原理是什么?
我发送了Guido van Rossum电子邮件,因为我真的很想知道这些方法的不同之处.
在Python中至少有3种方法可以做平方根:math.sqrt,'**'运算符和pow(x,.5).我只是好奇每个实现的差异.谈到效率哪个更好?
pow和**是等价的; math.sqrt不适用于复数,也不适用于C sqrt()函数的链接.至于哪一个更快,我不知道......
我们需要在工作场所定期解决的问题是如何根据用户提供的表/列名称构建sql语句.我想解决的问题是列名之间的逗号.
一种技术看起来像这样.
selectSql = "SELECT ";
for (z = 0; z < columns.size(); z++)
{
selectSql += columns[z]._name;
selectSql += ", ";
}
selectSql = selectSql(0, selectSql.len() - 2);
selectSql += "FROM some-table";
Run Code Online (Sandbox Code Playgroud)
另一种技术看起来像这样
selectSql = "SELECT ";
for (z = 0; z < columns.size(); z++)
{
selectSql += columns[z]._name;
if (z < columns.size() - 1)
selectSql += ", ";
}
selectSql += "FROM some-table";
Run Code Online (Sandbox Code Playgroud)
我并不特别被这些实现中的任何一个所吸引.
我很有兴趣听到其他解决这个问题的方法的想法,着眼于使代码更容易阅读/理解/维护.
有哪些替代技术?
python ×2
asp.net ×1
asp.net-mvc ×1
atomic ×1
c# ×1
c++ ×1
closures ×1
controller ×1
debugging ×1
document ×1
fullscreen ×1
geography ×1
html ×1
idioms ×1
javascript ×1
location ×1
merge ×1
migration ×1
ms-word ×1
mysql ×1
performance ×1
schema ×1
sql ×1
svn ×1
testing ×1
viewdata ×1
views ×1
zipcode ×1