2

我想知道是否可以使用导入的第 3 方类作为相关自定义变量的命名空间?说,下面的代码:

import pycurl

curlm = pycurl.CurlMulti()
curlm.pool = [pycurl.Curl() for i in range(POOL_SIZE)]
curlm.running = set()

在这个例子中,pycurl.CurlMulti 是一些 3rd-party 类,而poolrunning是我的变量(不是由 CurlMulti 提供的),但打算与 curlm 一起使用。

4

1 回答 1

0

不要这样做。你想要的是一个WeakKeyDictionary。您可以将任意值与任意对象相关联,而不必担心不同的模块会覆盖彼此的变量或让对象保持活动时间过长的 dict。

假设您编写了一个foo.py设置thing.whatever = 5. 后来的两个 Python 版本,thing提供了一种whatever方法。一切都崩溃了,你甚至没有碰过你的代码。

假设您编写了一个foo.py设置thing.whatever = 5. 两个月后,您正在处理一个不同的项目,并编写了一个bar.py设置thing.whatever = 4在相同thing. 由于您几个月前做出的不相关的决定,会发生可怕的破坏。

于 2013-07-20T01:08:51.323 回答