是否有可能在Python中使模块可迭代?

是否有可能在Python中使模块可迭代?,第1张

概述我正在创建一个模块,我想将其视为对象的静态容器.这些对象属于我定义的类类型.我希望能够导入此模块,然后循环遍历其中的对象.以下是一些解释我的意思的代码: example.py class MyExampleClass(object): def __init__(self, var1, var2, var3): self.var1 = var1 self.va 我正在创建一个模块,我想将其视为对象的静态容器.这些对象属于我定义的类类型.我希望能够导入此模块,然后循环遍历其中的对象.以下是一些解释我的意思的代码:

example.py

class MyExampleClass(object):    def __init__(self,var1,var2,var3):        self.var1 = var1        self.var2 = var2        self.var3 = var3        self.var4 = var4instanceA = MyExampleClass(1,2,3,4)instanceB = MyExampleClass(4,6,7)instanceC = MyExampleClass(5,4,5)# something like thisdef __iter__():    return (instanceA,instanceB,instanceC)

然后我希望能够导入它并像枚举一样使用它:

import examplefor e in example:   # do stuff with e

这可以用Python做吗?或者我是否必须从示例包中导入列表?

example.py

objects = (instanceA,instanceC)

然后

import examplefor e in example.objects:    # do stuff with e
解决方法 您可以通过在模块中定义根类并使用该类的实例替换模块来实现此目的.这是一个例子:
class ModuleClass(object):    __init__(self):        self.instanceA = MyExampleClass(1,4)        ...    __iter__(self):        # Your iterator logic here# and then in the same module codesys.modules[__name__] = ModuleClass()

那么你可以做你想要的,因为当你导入该模块时,它实际上是你的自定义可迭代ModuleClass的一个实例:

import examplefor e in example:   # do stuff with e
总结

以上是内存溢出为你收集整理的是否有可能在Python中使模块可迭代?全部内容,希望文章能够帮你解决是否有可能在Python中使模块可迭代?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存