我有一个本地数据库,我尝试使用python更新它,下面的代码就是我使用的代码
>>> from mysql.connector import connect
>>> p = connect(user="root", password="", host="127.0.0.1", port="3306", database='ef')
>>> cur = p.cursor()
>>> p = "s"
>>> cur
我想知道有什么方法可以在python中创建一个悬空指针吗?例如,我想我们必须手动删除一个对象,然后该对象的引用将指向一个对程序没有意义的位置。我找到了这个例子
import weakref
class Object:
pass
o = Object() #new instance
print ("o id is:",id(o))
r = weakref.ref(o)
print ("r id is:",id(r))
o2 = r()
print ("o2 id is:",id(o2))
print ("r() id is:
-、-和的文档都包括如下内容的一行(摘自PhantomReference):
届时,它将原子地清除对该对象的所有幻影引用,以及对任何其他可从该对象访问的幻影可达对象的所有幻影引用。
让我困惑的是关于另一个幻影可达对象的部分。
如果我理解正确的话,这就描述了这种情况:
物体:
一个
B
参考文献:
->:强引用
-P->:幻影参考
-> A
-P-> B -> A
因此,由于某种原因,垃圾收集器还没有确定B仅仅是幻影可达的。现在,如果A变成了幻影,并且垃圾收集器检测到了这一点,那么就需要(根据上面引用的文档)清除对B的引用。
from concurrent.futures import ProcessPoolExecutor
import os
import time
def parInnerLoop(item):
a = 2+item
print(f'A. {a} Processing {os.getpid()} done on {item}\n')
exec(open('mainWork.py').read())
print(f'D. {a} Processing {os.getpid()} done on {item}\n')
我注意到,与OSX相比,NSTextView不能因为弱引用(如果你试图将它链接到弱,你就会得到)
Cannot form weak reference to instance (0x600000122da0) of class NSTextView. It is possible that this object was over-released, or is in the process of deallocation.
此外,默认情况下,XCode的出口被创建为赋值。
为什么不能有弱引用呢?原因是什么?
我有一个如下所示的属性:
@property (weak, nonatomic) id<NavigationControllerDelegate> delegate;
但是当我运行我的应用程序时,我得到了以下错误:
objc[4251]: cannot form weak reference to instance (0x101e0d4b0) of class TabBarController
我能从google得到的这个错误的唯一原因是,当你试图形成一个弱引用来覆盖retain/release/dealloc的对象时,你会得到它,而我不是。我的TabBarController继承