小编The*_*ob.的帖子

将Python对象的变量作为函数调用,而不传递调用对象

我有这样的结构:

def foobar():
    print('FOOBAR!')

class SampleClass:
    foo = foobar
    def printfunc(self):
        self.foo()
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为原始foobar函数无法处理self传递给它 - 它不是任何类或对象的一部分开始.Python也不会让我添加@staticmethod装饰器.

我无法控制定义foobar,我可能必须覆盖foo子类的值.

如何在不传递调用它的对象的情况下调用foo?

python static-methods python-2.7

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

32位Windows XP上的Wow64DisableWow64FsRedirection

我正在使用Visual Studio C++编写一个程序,该程序需要在运行Windows XP 32位或任何更高版本Windows操作系统的任何计算机上以32位进程本机运行.C:\Windows\system32\无论程序是在64位还是32位系统上运行,该程序都需要能够访问计算机上的文件夹.为此,我Wow64DisableWow64FsRedirection用来禁用Windows通常对32位进程执行的重定向,并将其发送到C:\Windows\syswow64.不幸的是,这打破了兼容性 - 虽然我的程序可以在Server 2003和XP x64版本上运行,但只要它在32位XP RTM系统上运行,程序就会失败,给我这个错误:

[Program Name] - Entry Point Not Found
  The procedure entry point Wow64DisableWow64FsRedirection could not be located
  in the dynamic link library KERNEL32.dll.
Run Code Online (Sandbox Code Playgroud)

由于系统是32位的,因此调用显然是多余的,但是我无法找到一种方法来在运行时确定系统是否为64位,因此是否跳过调用而不添加另一个调用本身会破坏兼容性,例如IsWow64Process(),需要XP Service Pack 2.

tl; dr:如何在不使用消费者64位Windows出现之后引入的任何调用的情况下确定系统是64位还是32位.

c++ windows windows-xp 32bit-64bit

4
推荐指数
1
解决办法
3634
查看次数