我试图在类中包装一个写得很差的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中有以下代码:
class Test:
def __del__(self):
print("del is called")
a = Test()
a = Test()
以下产出的收益率:
`del is called`
为什么是这样,这背后的概念是什么?
每次调任后都叫"del“吗?
我编写了下面的代码来检查python是如何释放它的对象内存的,嗯,我发现了一些有趣的东西,但我不确定,所以我在这里发布它以寻求帮助。
第一
class A():
def __del__(self):
print "A __del__"
class B():
def __del__(self):
print "B __del__"
if __name__ == "__main__":
a = A()
b = B()
print "main leaving"
我在使用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
当我在解释器中输入这段代码时,调用'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
如何使我的Python代码更紧凑?
任何帮助都会变得非常有用
print("Welcome to my program")
# This program tells if a number form 1 - 10 is even or odd
try:
del_number = int(input("Input a number 1 - 10: "))
if del_number == 2 or del_number == 4 or del_number == 6 or del_number == 8 or del_number == 10:
我有一些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")
我对非常简单的代码有问题。
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
我正在用算法和数据进行问题解决的编程练习,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
在服务器上使用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?