草庐IT

clnt_call

全部标签

python - __init__ 还是 __call__?

什么时候应该使用__init__以及什么时候使用__call__方法?我对应该使用第一个还是第二个感到困惑。目前我可以同时使用它们,但我不知道哪个更合适。 最佳答案 这两个是完全不同的。__init__()是构造函数,它在对象的新实例上运行。__call__()在您尝试像调用函数一样调用对象实例时运行。例如:假设我们有一个类,测试:a=Test()#ThiswillcallTest.__init__()(amongotherthings)a()#ThiswillcallTest.__call__()

python - 多处理 : NULL result without error in PyObject_Call

这是我使用多处理的示例程序。计算是使用multiprocessing.Process完成的,结果是使用multiprocessing.Queue收集的。#THISPROGRAMRUNSWITH~40GbRAM.(youcanreducea,b,cforlessRAM#butthenitworksforsmallervalues)#PROBLEMOCCURSONLYFORHUGEDATA.fromnumpyimport*importmultiprocessingasmpa=arange(0,3500,5)b=arange(0,3500,5)c=arange(0,3500,5)a0=540

Python 的 sys.settrace 不会创建 c_call 事件

sys.settrace的文档说它可以报告对c或内置函数的调用。当我尝试执行以下程序时,我希望看到一个c_call事件,但什么也没有发生:importsysdeftracer(frame,event,arg):print(frame,event,arg)returntracersys.settrace(tracer)x=len([1,2,3])知道这里出了什么问题吗?任何人都可以发布一个生成c_call事件的sys.settrace使用示例吗?编辑:最初我用Python3.2尝试过,但它没有给我任何事件。现在我用Python2.7尝试了它,它给了我两个call-s(不是c_call-s

python - 需要了解__init__、__new__和__call__的流程

classSingleton(type):def__init__(self,*args,**kwargs):print'calling__init__ofSingletonclass',selfprint'args:',argsprint'kwargs:',kwargssuper(Singleton,self).__init__(*args,**kwargs)self.__instance=Nonedef__call__(self,*args,**kwargs):print'running__call__ofSingleton',selfprint'args:',argsprint'k

python - asyncio 的 call_later raises 'generator' object is not callable with coroutine object

我有一些使用call_later使用Python3.4的asyncio制作的简单代码。代码应该打印,等待10秒,然后再次打印(但是在应该执行end()时引发TypeError,见下文):importasyncio@asyncio.coroutinedefbegin():print("Startingtowait.")asyncio.get_event_loop().call_later(10,end())@asyncio.coroutinedefend():print("completed")if__name__=="__main__":try:loop=asyncio.get_eve

Python 异步 : event loop does not seem to stop when stop method is called

我有一个简单的测试,我使用run_forever方法运行Pythonasyncio事件循环,然后立即在另一个线程中停止它。但是,事件循环似乎并没有终止。我有以下测试用例:importasynciofromthreadingimportThreadloop=asyncio.get_event_loop()thread=Thread(target=loop.run_forever)thread.start()print('Started!')loop.stop()print('Requestedstop!')thread.join()print('Finished!')这个测试用例打印:S

python - 在类中调用父类的 __call__ 方法

我想从继承类中调用父类的call方法代码是这样的#!/usr/bin/envpythonclassParent(object):def__call__(self,name):print"helloworld,",nameclassPerson(Parent):def__call__(self,someinfo):super(Parent,self).__call__(someinfo)p=Person()p("info")我明白了,File"./test.py",line12,in__call__super(Parent,self).__call__(someinfo)Attribut

python - 我可以让 subprocess.call 将调用的输出写入字符串吗?

我想执行subprocess.call,并将调用的输出转换为字符串。我可以直接执行此操作,还是需要将其通过管道传输到文件,然后从中读取?换句话说,我能否以某种方式将stdout和stderr重定向到一个字符串中? 最佳答案 这是mantazer对python3的回答的扩展。您仍然可以使用subprocess.check_outputpython3中的命令:>>>subprocess.check_output(["echo","helloworld"])b'helloworld\n'但是现在它给了我们一个字节串。要获得真正的Pytho

python - 操作系统错误 : [WinError 6] The handle is invalid when calling subprocess from Python 3. 6

我正在将项目移植到Python3,但在Windows上遇到意外错误:基本上在Windows上的Python3.6上,每次使用子进程创建进程时,我都会遇到以下异常:d:\temp\backpack\venv\myvenv_py3.6\lib\site-packages\git\cmd.py:1011:in_call_processreturnself.execute(call,**exec_kwargs)d:\temp\backpack\venv\myvenv_py3.6\lib\site-packages\git\cmd.py:732:inexecute**subprocess_kwa

python - 如何在单元测试期间验证 Mock mock_calls 列表中的 .__getitem__() 调用

当尝试对返回元组的方法进行单元测试并且我试图查看代码是否访问正确的元组索引时,python尝试评估预期的调用并将其转换为字符串。call().methodA().__getitem__(0)最终被转换为'().methodA'在我的expected_calls断言列表中。提供的示例代码产生输出和回溯:expected_calls=[call().methodA(),'().methodA']result_calls=[call().methodA(),call().methodA().__getitem__(0)]====================================