我试图在类中包装一个写得很差的Python模块(我无法控制)。问题是,如果我没有显式地调用该模块的关闭函数,那么python进程就会挂起,所以我尝试用一个具有del方法的类包装该模块,但是del方法似乎不会在异常中被调用。
示例:
class Test(object):
def __init__(self):
# Initialize the problematic module here
print "Initializing"
def __del__(self):
# Close the problemati
我正在构建一个todo列表CLI,它需要一个del参数来从列表中删除一个条目。CLI用法如下所示
$ ./todo help
Usage :-
$ ./todo add "todo item" # Add a new todo
$ ./todo ls # Show remaining todos
$ ./todo del NUMBER # Delete a todo
$ ./todo done NUMBER # Complete a todo
$ ./todo help # Show usage
$ .
我在使用python从我的数据库中删除行时遇到问题。我可以像这样硬编码:
del_student = "DELETE FROM students WHERE sid=34556"
cursor.execute(del_student)
cnx.commit()
但是我试图从我的gui中的入口框中获取sid,但这不起作用:
sid=SIDEnt.get()
del_student = "DELETE FROM students WHERE sid=%s"
cursor.execute(del_student,sid)
cnx.commit()
我对python还是
python类中的del方法在不同的文本编辑器中有两个不同的输出。
class test:
def __init__(self) :
print("init")
def __del__(self):
print("del")
a=test()
vs代码中的输出:
init del out in jupyter :
初始化
很抱歉,如果主题出现在错误的部分
我对Python类__del__方法很好奇:
示例:
class A():
[...]
class B():
__init__:
self.a = A()
__del__:
del self.a
b = B()
del b
我必须在class B上写__del__方法吗?当删除A class实例时,B class中B实例是否从内存中删除,或者我们必须像我一样使用__del__方法?
请考虑以下几点:
In [1]: del []
In [2]: del {}
File "<ipython-input-2-24ce3265f213>", line 1
SyntaxError: can't delete literal
In [3]: del ""
File "<ipython-input-3-95fcb133aa75>", line 1
SyntaxError: can't delete literal
In [4]: del ["A"]
File
>>> li = [1, 2, 3, 4]
>>> li
[1, 2, 3, 4]
>>> del li[2] #case 1
>>> li
[1, 2, 4]
>>> del(li[2]) # case 2
>>> li
[1, 2]
>>> del (li[1]) # case 3
>>> li
[1]
>>>
我的一位教授用案例2从列表中删除了项目。
根据案例1是正确的,并且还有另一种语法方式存在于这个中,所以案例3也是正确的
为什么这段代码会像它那样工作呢?
x = 3
print(dir()) #output indicates that x is defined in the global scope
del (x)
print(dir()) #output indicates that x is not defined in the global scope
我的理解是,del是Python中的一个关键字,下面的del应该是一个名称。(name)不是一个名字。为什么这个例子似乎显示del (name)和del name一样工作
我有一些test.py文件:
class A:
def __init__(self):
print("A init")
def __del__(self):
print("A del")
a = A()
当我运行它10次(python3 test.py)时,它总是产生下一个输出:
A init
A del
但是,如果我将sys.exit调用添加到脚本末尾:
import sys
class A:
def __init__(self):
print("A init")
在IronPython中,我似乎不能让一个来自委托作用域之外的变量在它的作用域内改变(甚至出现)。这与我在C#和Python中可以做的事情相反。
在C#中,我可以执行以下(人为设计的)示例:
public delegate bool Del(int index);
public static void Main() {
int total_count = 0;
Del d = delegate (int index) {
total_count += 3;
return true;
};
for (int i = 4; i
在服务器上使用pytorch处理图像,并面临内存问题。特别是: 场景1: #before execution memory used is 1518
temp = PIL.Image.open(im) #no leak
del im
del temp
gc.collect()
#after execution x5 times memory used is 1518 场景2: #before execution memory used is 1518
temp = PIL.Image.open(im) #no leak
del im
temp2 = np.array(temp) #leak?
当我在解释器中输入这段代码时,调用'y‘似乎会调用析构函数?
class SmartPhone:
def __del__(self):
print "destroyed"
y = SmartPhone()
y #prints destroyed, why is that?
y #object is still there
这是一次运行,输出对我来说没有意义。
C:\Users\z4>python
Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel
是否有一种简单的方法可以为发生在__del__中的异常打印堆栈跟踪?在我的例子中,没有为这个对象定义__del__方法
Exception TypeError: "'NoneType' object is not callable" in <bound method InteractiveSession.__del__ of <tensorflow.python.client.session.InteractiveSession object at 0x2867710>> ignored
我正在用算法和数据进行问题解决的编程练习,structures.The练习是比较lists和字典中del操作符的性能,下面是代码:
import timeit, random
from timeit import Timer
for i in range(1000000, 100000000, 1000000):
x = list(range(i))
t = Timer("del x[random.randrange(%d)]" %i,\
"from __main__ import random,x")
y
我对非常简单的代码有问题。
from ctypes import CDLL
import shutil
# The random library ztrace_maps.dll copied from C:\Windows\SysWOW64 to C:/DLL/
class Test:
def __init__(self):
self.dll = CDLL("C:/DLL/ztrace_maps.dll")
def __del__(self):
del self.dll
shutil.rmtree("C