小编Joh*_*ohu的帖子

QWidget调整大小信号?

我想在调整小部件大小时采取行动.

有没有办法在没有在该窗口小部件上安装事件过滤器的情况下捕获它(显然,没有子类化它)?AFAIK,QWidget没有resized信号.

qt qt4 pyqt pyqt4

23
推荐指数
4
解决办法
3万
查看次数

在python中使用与instance和classmethod相同的函数

人们可以这样做:

class master:
    @combomethod 
    def foo(param):
        param.bar() # Param could be type as well as object

class slaveClass( master ):
    @classmethod 
    def bar(cls):
        print("This is class method")

slaveType = slaveClass
slaveType.foo()

class slaveInstance( master ):
    def __init__(self, data):
        self.data = data
    def bar(self):
        print("This is "+self.data+" method")


slaveType = slaveInstance("instance")
slaveType.foo()
Run Code Online (Sandbox Code Playgroud)

combomethod在" 创建同时是实例和类方法的方法 "中定义.

我的问题是,为什么这样,默认的第一个参数不能用作comboclass的参数?或者至少,为什么我不能将对象作为第一个参数传递给classmethod?我知道classmethod和instancemethods之间的区别,我知道装饰器,但我可能不明白如何进行内置@classmethodself参数传递.有技术限制吗?或者,为什么还没有combomethod内置?

python decorator instance class-method

6
推荐指数
2
解决办法
2890
查看次数

如何在python中引用重写类函数

我知道C++和Java,我不熟悉Pythonic编程.所以也许这是我想要做的坏风格.

考虑下面的例子:

class foo:
        def a():
                __class__.b() # gives: this is foo
                bar.b() # gives: this is bar
                foo.b() # gives: this is foo
                # b() I'd like to get "this is bar" automatically

        def b():
                print("this is foo")

class bar( foo ):
        def b( ):
                print("this is bar")

bar.a()
Run Code Online (Sandbox Code Playgroud)

请注意,我没有使用self参数,因为我没有尝试创建类的实例,因为不需要我的任务.我只是试图以一种可以覆盖函数的方式引用函数.

python oop inheritance class-method static-functions

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