相关疑难解决方法(0)

5409
推荐指数
22
解决办法
75万
查看次数

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<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)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

Python状态机设计

此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的动态特性(例如动态调度)的同时,还有很多方法可以实现.

我正在接受"引擎"的设计技术,它接收基于机器"状态"的"事件"和"发送".

python state-machine fsm

45
推荐指数
4
解决办法
5万
查看次数

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)

我怎样才能动态地让一些第三类继承ParentAParentB基于这样的东西?

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)

python inheritance

26
推荐指数
2
解决办法
1万
查看次数

Python:如何使用不同的基类来变基或动态替换一个类

我正在尝试创建一个公共类,我想在不同的应用程序中使用它。

想法:一个可以用作 ui 创建的基类的类。此类将基于其特定 GUI 系统(PySide 或 PyQt)中的应用程序小部件

这将使我能够遵循相同的代码流程来生成 gui。我喜欢在管道中使用相同的结构,这样可以更轻松地使用相同的命令在不同的应用程序中工作。

问题:PyQt和PySide是用C++编译的,不遵循Python类结构

我尝试了很多不同的方法来让它发挥作用,但每次我在某个时候拿到库存时都没有得到我想要的结果。

  1. 尝试(变基):

    在这次尝试中,我曾经__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)

python inheritance class pyqt pyside

5
推荐指数
1
解决办法
1982
查看次数

将父类作为参数传递?

在创建实例之前,是否可以不指定父类?
例如这样的事情:

class SomeParentClass:
    # something

class Child(unspecifiedParentClass):
    # something

instance = Child(SomeParentClass)
Run Code Online (Sandbox Code Playgroud)

这显然行不通。但是有可能以某种方式做到这一点吗?

python inheritance arguments unspecified

4
推荐指数
2
解决办法
7998
查看次数

比较python中两个动态创建的类类型

这与另一个问题类似,但在这种情况下,我想了解两个相同但动态创建的类类型之间的类型比较.

考虑一下这个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)

我的结果是假的.

我知道我创造了两种不同的类型,但对于人类来说它们是相同的.比较运算符在什么级别识别出差异?

python types

4
推荐指数
1
解决办法
102
查看次数