Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从类变量元素构造实例变量pyparsing matcher_Python_Oop_Deep Copy_Pyprocessing - Fatal编程技术网

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']