问题列表 - 第33734页

在Python 3中获取未绑定方法对象的定义类

假设我想为类中定义的方法创建装饰器.我希望装饰器在被调用时能够在定义方法的类上设置属性(以便将其注册到用于特定目的的方法列表中).

在Python 2中,该im_class方法很好地完成了这个:

def decorator(method):
  cls = method.im_class
  cls.foo = 'bar'
  return method
Run Code Online (Sandbox Code Playgroud)

但是,在Python 3中,似乎不存在这样的属性(或替代它).我想这个想法是你可以调用type(method.__self__)来获取类,但是这对于未绑定的方法不起作用,因为__self__ == None在那种情况下.

注意:这个问题实际上与我的情况有点无关,因为我选择在方法本身上设置属性,然后让实例扫描其所有方法,在适当的时间查找该属性.我(目前)也在使用Python 2.6.但是,我很好奇是否有替换版本2的功能,如果没有,那么完全删除它的理由是什么.

编辑:我刚发现这个问题.这使得看起来最好的解决方案就是像我一样避免它.我仍然想知道为什么它被删除了.

python python-3.x

35
推荐指数
3
解决办法
2万
查看次数

读取文件特定行号的有效方法.(奖金:Python手册错误打印)

我有一个100 GB的文本文件,这是一个来自数据库的BCP转储.当我尝试导入它时BULK INSERT,我在行号219506324上得到了一个神秘的错误.在解决这个问题之前我想看看这行,但是我最喜欢的方法是

import linecache
print linecache.getline(filename, linenumber)
Run Code Online (Sandbox Code Playgroud)

扔了一个MemoryError.有趣的是手册上说的是"此功能将永远不会抛出异常." 在这个大文件中,当我尝试读取第1行时,它会抛出一个,我有大约6GB的可用RAM ...

我想知道到达那条无法到达的线路最优雅的方法是什么.可用的工具是Python 2,Python 3和C#4(Visual Studio 2010).是的,我明白我总能做点什么

var line = 0;
using (var stream = new StreamReader(File.OpenRead(@"s:\source\transactions.dat")))
{
     while (++line < 219506324) stream.ReadLine(); //waste some cycles
     Console.WriteLine(stream.ReadLine());
}
Run Code Online (Sandbox Code Playgroud)

哪个会奏效,但我怀疑这是优雅的方式.

编辑:我正在等待关闭此线程,因为包含该文件的硬盘驱动器现在正由另一个进程使用.我将测试建议的方法和报告时间.谢谢大家的建议和意见.

结果是我实施了Gabes和Alexes方法,看看哪一个更快.如果我做错了什么,请告诉我.我正在使用Gabe建议的方法在我的100GB文件中使用第10百万行,然后使用Alex建议的方法,我将其松散地翻译成C#...我自己添加的唯一内容是,首先阅读300 MB文件到内存只是为了清除硬盘缓存.

const string file = @"x:\....dat"; // 100 GB file
const string otherFile = @"x:\....dat"; // 300 MB file
const int linenumber = 10000000;

ClearHDDCache(otherFile);
GabeMethod(file, linenumber); …
Run Code Online (Sandbox Code Playgroud)

.net c# python file

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

单元测试功能有副作用?

假设您正在编写一个函数来检查是否通过相应的URL访问了某个页面.该页面有一个"规范"存根 - 例如,虽然可以通过stackoverflow.com/questions/123访问页面,但我们更愿意(出于搜索引擎优化的原因)将其重定向到stackoverflow.com/questions/123/how-do -i-move-the-turtle-in-logo - 实际的重定向安全地包含在自己的方法中(例如redirectPage($ url)),但是如何正确测试调用它的函数?

例如,采用以下功能:

function checkStub($questionId, $baseUrl, $stub) {
  canonicalStub = model->getStub($questionId);
  if ($stub != $canonicalStub) {
    redirectPage($baseUrl . $canonicalStub);
  }
}
Run Code Online (Sandbox Code Playgroud)

如果您要对checkStub()函数进行单元测试,重定向是否会妨碍?

这是一个更大问题的一部分,在这个问题中,某些功能似乎变得太大,并且离开了单元测试的领域并进入了集成测试的世界.我的想法立即认为路由器和控制器存在这些问题,因为测试它们必然导致页面的生成而不仅仅局限于它们自己的功能.

我只是在单元测试中失败了吗?

redirect unit-testing controller side-effects separation-of-concerns

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

我可以在没有IIS的情况下安装SharePoint Foundation吗?

如果我想使用API​​(而不是Web服务)从.Net应用程序(而不是Web应用程序)访问SharePoint Foundation的文档库,那么是否可以在没有IIS的情况下安装SharePoint Foundation?

iis sharepoint sharepointfoundation2010

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

我如何验证澳大利亚医疗保险号码?

我正在开发一个在线表格,其中需要验证用户输入的Medicare号码.

(我的具体问题涉及澳大利亚医疗保险号码,但我也很高兴得到有关美国医疗保险的答案.这个问题一般是关于医疗保险的数字.)

那我该怎么办呢?

(在Javascript或正则表达式中获得答案会很好.)

javascript validation numbers

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

使用php修复html文档上错误显示的编码

有没有办法通过phpquery :: newDocument运行这个html标记后修复显示不正确的字符?在使用phpquery创建新文档后,原始文档中的-Classics和现代Woman之间会出现双引号.

    //Original document is UTF-8 encoded
$raw_html = '<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body><p>Mr. Smith of Bangkok celebrated the “Classics with modern Woman”.</p></body></html>';
print($raw_html);

$aNew_document = phpQuery::newDocument($raw_html);
print($aNew_document);
Run Code Online (Sandbox Code Playgroud)

原始输出:曼谷史密斯先生庆祝"与现代女性的经典".

新文件输出:曼谷史密斯先生与现代女性一起庆祝"经典".

php encoding phpquery

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

澳大利亚银行通过BSB查询,使用Javascript

有没有办法通过Javascript查找银行名称和分支?

也许外部服务或完整的数据集可以在内部托管并通过JSON访问?

javascript validation bank

4
推荐指数
2
解决办法
4063
查看次数

哪种算法从融合乘法中获益最多?

fma(a,b,c)相当于a*b+c除了不舍入中间结果.

你能不能给我一些算法的例子,这些算法可以从避免这种舍入中获益?

这并不明显,因为我们避免的乘法后的舍入往往比加法后的舍入更少有问题,而我们没有.

floating-point fma

14
推荐指数
2
解决办法
3505
查看次数

在类中使用OpenGL glutDisplayFunc

我已经创建了一个C++类(myPixmap)来封装OpenGL GLUT工具包执行的工作.display()该类的成员函数包含设置GLUT所需的大部分代码.


void myPixmap::display()
{
    // open an OpenGL window if it hasn't already been opened
    if (!openedWindow)
    {
        // command-line arguments to appease glut
        char *argv[] = {"myPixmap"};
        int argc = 1;
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(640, 480);
        glutInitWindowPosition(30, 30);
        glutCreateWindow("Experiment");
        glutDisplayFunc(draw);
        glClearColor(0.9f, 0.9f, 0.9f, 0.0);
        glClear(GL_COLOR_BUFFER_BIT);
        glutMainLoop();

        openedWindow = true;
    }  
}
Run Code Online (Sandbox Code Playgroud)

传递给的显示函数glutDisplayFunc()是该类的另一个成员函数:


void myPixmap::draw(void)
{
    glDrawPixels( m,n,GL_RGB,GL_UNSIGNED_BYTE, pixel );
}
Run Code Online (Sandbox Code Playgroud)

但是,Mac OS X 10.6.4上的gcc 4.2.1拒绝编译此代码,声称:

argument of type 'void (myPixmap::)()' …

c++ opengl compiler-errors class

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

在C之前用于OS开发的语言

我知道C是操作系统开发的标准编程语言,但出于好奇,我想知道它之前是什么.C之前用于操作系统开发的主要编程语言是什么?

c history operating-system

9
推荐指数
4
解决办法
1331
查看次数