我有三个紧密联系在一起的变量,我不想每次调用函数时都分开传递。什么是正确的捆绑方式。在
上下文:变量的作用是在逐字阅读文档时跟踪文档的某些属性。在
我目前的方法是将它们捆绑在一个类中:
class MarkdownIsOpen(object):
def __init__(self):
self.ChapterOpen = False
self.SectionOpen = False
self.ArticleOpen = False
但这在我看来有点不对,因为我不打算添加任何方法或其他功能。在
如果namedtuple是可变的,那么它将是完美的。在
将这三个变量捆绑在一起的恰当(最具Python式的)方式是什么?在
使用dataclass:
或者:
^{pr2}$请注意,这需要Python3.7。在
如果使用Python<;=3.6,那么普通类也可以。类并不昂贵,它们向用户提供了一个提示:您的函数不需要任何旧的
dict
-类,而是一个具有以下属性的特殊容器。在例如,将其与C的}进行比较,它们的作用基本相同。在
struct
或Scala的{此外,您甚至可以重写
__slots__
和/或__getitem__
以允许类似dict
的访问,并阻止添加新属性:示例:
输出:
可以看看这个问题:Existence of mutable named tuple in Python?
有两个好答案:recordclass 和namedlist的可变替代命名元组
您可以使用dataclasses。在
相关问题 更多 >
编程相关推荐