Python 从类变量元素构造实例变量pyparsing matcher
我构造了一个 假设匹配稍有不同的复杂匹配器对象 这取决于实例化标志。这里有一个(简化的)示例:Python 从类变量元素构造实例变量pyparsing matcher,python,oop,deep-copy,pyprocessing,Python,Oop,Deep Copy,Pyprocessing,我构造了一个 假设匹配稍有不同的复杂匹配器对象 这取决于实例化标志。这里有一个(简化的)示例: a,b,c,。。。。是类变量,因此我可以引用它们 在expr中,就像这样,不必在它们前面加上 实例引用self(类似于self.a)表达式必须是 实例变量,因为MyMatcher的不同实例化 必须匹配不同的东西 上述示例有效: mymTrue = MyMatcher(True) mymFalse = MyMatcher(False) print (mymTrue.parse("alpha aaaa a
a
,b
,c
,。。。。是类变量,因此我可以引用它们
在expr
中,就像这样,不必在它们前面加上
实例引用self
(类似于self.a
)<代码>表达式必须是
实例变量,因为MyMatcher的不同实例化
必须匹配不同的东西
上述示例有效:
mymTrue = MyMatcher(True)
mymFalse = MyMatcher(False)
print (mymTrue.parse("alpha aaaa alpha"))
print (mymFalse.parse("alpha 777 alpha"))
按预期返回:
['alpha', 'aaaa', 'alpha']
['alpha', '777', 'alpha']
我担心的是:即使对于非常复杂的匹配者来说,这是否也有效
(嵌套的)a
,b
,c
,d
,等等?或者用不同的措辞:是
从类变量复制到实例的完整逻辑(深-)
对象expr
,这样a
、b
和c
在下一次MyMatcher
对象创建时被覆盖?
或者,如果这是一个问题,是否有其他方法来创建不同的
短而美观的结构匹配器,如(a+b | b)+
pp.可选(c)
?变量a
,b
,c
,。。。。是不是类变量;它们是方法中的局部变量。只要需要,对这些变量的引用将保持活动状态。(请参见Python文档中的。)
['alpha', 'aaaa', 'alpha']
['alpha', '777', 'alpha']