python对象类型在内存中怎样存放_python – 在类字段中存储类的所有实例是不......

我想知道在做这样的事情时是否有任何错误(从OOP的角度来看):

class Foobar:

foobars = {}

def __init__(self, name, something):

self.name = name

self.something = something

Foobar.foobars[name] = self

Foobar('first', 42)

Foobar('second', 77)

for name in Foobar.foobars:

print name, Foobar.foobars[name]

编辑:这是我正在使用的实际代码片段

from threading import Event

class Task:

ADDED, WAITING_FOR_DEPS, READY, IN_EXECUTION, DONE = range(5)

tasks = {}

def __init__(self, name, dep_names, job, ins, outs, uptodate, where):

self.name = name

self.dep_names = [dep_names] if isinstance(dep_names, str) else dep_names

self.job = job

self.where = where

self.done = Event()

self.status = Task.ADDED

self.jobs = []

# other stuff...

Task.tasks[name] = self

def set_done(self):

self.done.set()

self.status = Task.DONE

def wait_for_deps(self):

self.status = Task.WAITING_FOR_DEPS

for dep_name in self.dep_names:

Task.tasks[dep_name].done.wait()

self.status = Task.READY

def add_jobs_to_queues(self):

jobs = self.jobs

# a lot of stuff I trimmed here

for w in self.where: Queue.queues[w].put(jobs)

self.status = Task.IN_EXECUTION

def wait_for_jobs(self):

for j in self.jobs: j.wait()

#[...]

正如您所看到的,我需要访问包含所有实例的字典

wait_for_deps方法.拥有一个全局变量会更有意义吗?

而不是类字段?我可能在这里使用了错误的方法,也许就是这样

东西甚至不应该在一个方法中,但它对我有意义(我是OOP的新手)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值