我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
与此Stack Overflow问题(C状态机设计)相关,Stack Overflow人员可以与我(以及社区)共享您的Python状态机设计技术吗?
目前,我正在寻找基于以下内容的引擎:
class TrackInfoHandler(object):
def __init__(self):
self._state="begin"
self._acc=""
## ================================== Event callbacks
def startElement(self, name, attrs):
self._dispatch(("startElement", name, attrs))
def characters(self, ch):
self._acc+=ch
def endElement(self, name):
self._dispatch(("endElement", self._acc))
self._acc=""
## ===================================
def _missingState(self, _event):
raise HandlerException("missing state(%s)" % self._state)
def _dispatch(self, event):
methodName="st_"+self._state
getattr(self, methodName, self._missingState)(event)
## =================================== State related callbacks
Run Code Online (Sandbox Code Playgroud)
但我确信在利用Python的动态特性(例如动态调度)的同时,还有很多方法可以实现.
我正在接受"引擎"的设计技术,它接收基于机器"状态"的"事件"和"发送".
假设我有两个不同的类实现
class ParentA:
def initialize(self):
pass
def some_event(self):
pass
def order(self, value):
# handle order in some way for Parent A
class ParentB:
def initialize(self):
pass
def some_event(self):
pass
def order(self, value):
# handle order in another for Parent B
Run Code Online (Sandbox Code Playgroud)
我怎样才能动态地让一些第三类继承ParentA或ParentB基于这样的东西?
class MyCode:
def initialize(self):
self.initial_value = 1
def some_event(self):
# handle event
order(self.initial_value)
# let MyCode inherit from ParentA and run
run(my_code, ParentA)
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个公共类,我想在不同的应用程序中使用它。
想法:一个可以用作 ui 创建的基类的类。此类将基于其特定 GUI 系统(PySide 或 PyQt)中的应用程序小部件
这将使我能够遵循相同的代码流程来生成 gui。我喜欢在管道中使用相同的结构,这样可以更轻松地使用相同的命令在不同的应用程序中工作。
问题:PyQt和PySide是用C++编译的,不遵循Python类结构
我尝试了很多不同的方法来让它发挥作用,但每次我在某个时候拿到库存时都没有得到我想要的结果。
尝试(变基):
在这次尝试中,我曾经__class__对类本身进行变基。
from PyQt4 import QtGui, QtCore
class UiMainBase(object):
PARENT = QtGui.QMainWindow
def __init__(self, uiFile=None, parent=None):
if parent: self.PARENT = parent
self.__class__ = self.PARENT
if __name__ == "__main__":
import sys
from PySide import QtGui as PySideGui
class MyGui(UiMainBase):
def __init__(self, uiFile):
super(MyGui, self).__init__(uiFile, PySideGui.QMainWindow)
Ui = r"C:\pythonTest\ui\test.ui"
app = PySideGui.QApplication(sys.argv)
win = MyGui(Ui)
win.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)我得到的错误是合理的,不需要解释。
# 1st Error :
Traceback (most recent call last):
#[..] …Run Code Online (Sandbox Code Playgroud) 在创建实例之前,是否可以不指定父类?
例如这样的事情:
class SomeParentClass:
# something
class Child(unspecifiedParentClass):
# something
instance = Child(SomeParentClass)
Run Code Online (Sandbox Code Playgroud)
这显然行不通。但是有可能以某种方式做到这一点吗?
这与另一个问题类似,但在这种情况下,我想了解两个相同但动态创建的类类型之间的类型比较.
考虑一下这个SO问题的一个例子:
class SecretBaseClass(object):
pass
class Class(object):
pass
ClassType1 = type(Class.__name__, (SecretBaseClass,), dict(Class.__dict__))
ClassType2 = type(Class.__name__, (SecretBaseClass,), dict(Class.__dict__))
Run Code Online (Sandbox Code Playgroud)
如果我那么做:
print ClassType1 == ClassType2
Run Code Online (Sandbox Code Playgroud)
我的结果是假的.
我知道我创造了两种不同的类型,但对于人类来说它们是相同的.比较运算符在什么级别识别出差异?