我想定义一个能够从另一个实例的序列化数据中读取自己的类.这是简化的代码:
class MyClass(list):
def __init__(self,**kwargs):
if kwargs.has_key('fdata'):
f = open(kwargs['fdata'],'r')
self = pickle.load(f)
print len(self) #prints 320
f.close()
...
a = MyClass(fdata='data.dat')
print len(a) #prints 0
Run Code Online (Sandbox Code Playgroud)
这是我获得的输出:
320
0
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是返回的实例总是空的,即使我能够读取内部的所有元素__init__()可能导致这种情况?
我是Python的新手,我很难理解这个简单程序的输出:
list = os.listdir(os.getcwd())
print(list)
print()
for element in list:
print(element)
if 'txt' not in element: list.remove(element)
Run Code Online (Sandbox Code Playgroud)
这给了我这个输出:
['examples_list.txt', 'generate_patterns.py', 'lehoczky_example_3.txt', 'patterns', 'test.py', 'test2.py']
examples_list.txt
generate_patterns.py
patterns
test2.py
Run Code Online (Sandbox Code Playgroud)
为什么某些元素(例如'lehoczky_example_3.txt')被"for"循环忽略了?
我想用一组预定义的有效键来实现两个不同的词典.另外,一个字典包含另一个字典.
class Otherdict (dict):
_keys = ['A','B']
def __init__(self):
for key in self._keys:
self[key] = None
def populateDict(self):
self['B'] = 10
self['A'] = 12
class MyDict(dict):
_keys = ['R','ED']
def __init__(self):
for key in self._keys:
self[key] = None
def __getitem__(self, key):
if key not in self._keys:
raise Exception("'" + key + "'" + " is not a valid key")
dict.__getitem__(self,key)
def __setitem__(self, key, value):
if key not in self._keys:
raise Exception("'" + key + "'" + " is not a …Run Code Online (Sandbox Code Playgroud)