Hello Friends我是Python的新手,并尝试使用Python中的Classes实现一些示例代码。我可以使用单独的函数来实现,但是当我尝试通过类I进行集成时,最终会进入无限循环。
这是代码和逻辑的片段我正在阅读一个文件,内容如下:
fruit apple
animal cat
vehicle car
我的最终目标是将输出作为带有键和值的内容字典,如下面的dict,后来我想用键搜索并进行处理。
{'fruit': 'apple', 'animal': 'cat', 'vehicle':'car'}
class FileHandler:
def __init__(self, dbf):
self.logger = logging.getLogger('fileHandler')
self.thefile = open(dbf, 'r')
print(self.thefile)
def __enter__(self):
return self
def __exit__(self,type,value,traceback):
self.thefile.close()
with FileHandler(dbf='input.txt') as fh:
config = [line.strip() for line in (fh.thefile.readlines())]
这是类定义:
class GetExtract:
def __init__(self, config_list=None, config_dict=None):
if (config_list, config_dict) is None:
config_list = []
config_dict = {}
self.config_list = config_list
self.config_dict = config_dict
def assign_sig(self, listin):
self.config_list = listin
#for item in listin:
# self.config_list = listin.extend(item.split())
#print("final dict is \n", self.config_list) ## break items into list
## Map adjacent items as key and value
#for index, kvalue in enumerate(self.config_list):
# if index %2 == 0:
# self.config_dict[kvalue] = self.config_list[index+1]
# return self.config_dict ## create a mapping inside dict
xtemp = GetExtract()
xtemp.assign_sig(config)
当我尝试使用类中的for
循环进行迭代时,它会进入一个无限循环,我已经在上面的代码中进行了评论。
请告诉我如何使用课程实现我的目标。
答案 0 :(得分:0)
for item in listin:
self.config_list = listin.extend(item.split())
您正在循环的对象(在这种情况下为listin
)正在循环中进行修改。 永远不要那样做。