请原谅我,如果我的标题误导你,但我在尝试获取相应类别的列表时遇到问题,而我可以更改类别,它仍然保留上一类别选择中列表的值< / p>
category = os.environ['CAT']
item = os.environ['ITEM']
""" ezygate.Job.getItems is the code of the inhouse tool i'm using to derive the list of items """
itemList = ezygate.job.getItems({'Items': '%s'%category})
category = ['Shirts']
itemList = ['v-neck', 'round', 'long sleeve', ...]
因此,当用户想要更改类别时,他们必须访问另一个ui来更改它(不是此编码的一部分),虽然os.environ['CAT']
将相应更新,但itemList是错误的...例如:
category = ['Shorts']
itemList = ['v-neck', 'round', 'long sleeve', ...]
当我尝试os.environ.clear()
时,它会搞砸我的Maya并且我收到以下错误:
# Error: CAT
# Traceback (most recent call last):
# File "<maya console>", line 2, in <module>
# File "/apps/Linux64/aw/maya2014/lib/python2.7/UserDict.py", line 23, in __getitem__
# raise KeyError(key)
# KeyError: 'CAT #
因此,如果不是category
的一部分,os.environ ['ITEM']会清除itemsList吗?
我期待看看除了使用os.environ
方法之外是否还有其他内部代码可以读取项目列表(这是我唯一知道的...)
答案 0 :(得分:1)
看起来你有一个模块ezygate
,你已经在内部制作了。在该模块中创建dict
个list
,具有以下结构:
cats = {'Shirt': ['v-neck', 'round', 'long sleeve']}
只要其他用户可以import ezygate
,您就可以在那里访问相同的dict
,而不是依赖os.environ
ezygate.cats['Shirt']
os.environ
是存储在os
模块中的字典,但没有理由不依赖另一个模块中的另一个字典。根据您的模块,可能跳出的时间超过ezygate
,但重要的是,只要您需要依赖dict
,就可以导入模块。