小编dav*_*dev的帖子

如何避免使用super()进行无限递归?

我有这样的代码:

class A(object):
    def __init__(self):
          self.a = 1

class B(A):
    def __init__(self):
        self.b = 2
        super(self.__class__, self).__init__()

class C(B):
    def __init__(self):
        self.c = 3
        super(self.__class__, self).__init__()
Run Code Online (Sandbox Code Playgroud)

实例化B按预期工作但实例化C无限递归并导致堆栈溢出.我怎么解决这个问题?

python oop multiple-inheritance super

28
推荐指数
1
解决办法
4815
查看次数

如何获取Flask中的当前端口号?

使用Flask,我如何获得烧瓶所连接的当前端口号?我想使用端口0在随机端口上启动服务器,但我还需要知道我在哪个端口.

编辑

我想我找到了解决问题的方法,虽然这不是问题的答案.我可以遍历从49152开始的端口并尝试使用该端口app.run(port=PORT).我可以在try catch块中执行此操作,这样如果我收到Address already in use错误,我可以尝试下一个端口.

python networking web-frameworks flask

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

什么是Python类方法的Python等价物?

在ruby中你可以这样做:

class A
    def self.a
        'A.a'
    end
end

puts A.a #-> A.a
Run Code Online (Sandbox Code Playgroud)

怎么能在python中完成.我需要一个类的方法,而不需要在类的实例上调用它.当我尝试这样做时,我收到此错误:

unbound method METHOD must be called with CLASS instance as first argument (got nothing instead)
Run Code Online (Sandbox Code Playgroud)

这是我试过的:

class A
    def a():
       return 'A.a'

print A.a()
Run Code Online (Sandbox Code Playgroud)

ruby python oop static-methods class-method

9
推荐指数
2
解决办法
4162
查看次数

如何获取图标名称的完整文件路径?

如何从GNOME中的图标名称获取完整文件路径?

python gtk icons gnome

9
推荐指数
2
解决办法
1972
查看次数

如何从Ruby访问GNOME密钥环?

我需要从Ruby编程语言中访问GNOME密钥环.但是,我找不到任何宝石的红宝石库.具体来说,我正在尝试获取桌面触控的Oauth键.

如何实现这一目标?

ruby gnome

7
推荐指数
1
解决办法
485
查看次数

如何启用/禁用工具栏项?

如何使gtk.ToolButton禁用以使其"灰显"?像这样:

替代文字

你如何让它再次启用?

python gtk pygtk toolbar

7
推荐指数
1
解决办法
3474
查看次数

如何获取常规文件类型的文件扩展名列表?

我试图使用mimetypes模块基于MIME类型的第一部分获取文件扩展名列表.例如.'image'是'image/jpeg','image/png'等的第一部分.

这是我的代码:

import mimetypes

def get_extensions_for_type(general_type):
    for ext in mimetypes.types_map:
        if mimetypes.types_map[ext].split('/')[0] == general_type:
            yield ext

VIDEO = tuple(get_extensions_for_type('video'))
AUDIO = tuple(get_extensions_for_type('audio'))
IMAGE = tuple(get_extensions_for_type('image'))

print("VIDEO = " + str(VIDEO))
print('')
print("AUDIO = " + str(AUDIO))
print('')
print("IMAGE = " + str(IMAGE))
Run Code Online (Sandbox Code Playgroud)

这是输出:

VIDEO = ('.m1v', '.mpeg', '.mov', '.qt', '.mpa', '.mpg', '.mpe', '.avi', '.movie', '.mp4')

AUDIO = ('.ra', '.aif', '.aiff', '.aifc', '.wav', '.au', '.snd', '.mp3', '.mp2')

IMAGE = ('.ras', '.xwd', '.bmp', '.jpe', '.jpg', '.jpeg', '.xpm', '.ief', '.pbm', '.tif', '.gif', '.ppm', …
Run Code Online (Sandbox Code Playgroud)

python iterator mime-types

7
推荐指数
1
解决办法
2124
查看次数

如何将任意小部件放入gtk.Menu?

如何将gtk.Widget(例如进度条)作为菜单项之一放入gtk.Menu?

python gtk pygtk menu

6
推荐指数
1
解决办法
434
查看次数

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

如何通过图形sudo在python中获得root权限?

我的部分python程序需要管理员访问权限.如何使用类似于gksudo命令的GUI弹出窗口获得root权限?

我只需要我的程序的一小部分的root权限,所以最好只拥有特定功能的权限.

我希望能够做到这样的事情:

gksudo(my_func, 'description of why password is needed')
Run Code Online (Sandbox Code Playgroud)

python gksudo

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

如何在 vala 中使用 gettext?

当我尝试在 vala 中使用 gettext 时,我没有收到 vala 的错误或警告,但我从 c 编译器收到以下错误:

/usr/include/glib-2.0/glib/gi18n-lib.h:29:2: error: #error You must define GETTEXT_PACKAGE before including gi18n-lib.h. Did you forget to include config.h?
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

gettext vala

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

如何在图像菜单项中使用自定义图标?

我可以使用图标创建菜单项:

new = gtk.ImageMenuItem(gtk.STOCK_NEW, 'New')
Run Code Online (Sandbox Code Playgroud)

但我如何使用自定义图标 - 从文件?

python gtk pygtk menu menuitem

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

如何在选择treeview(liststore)行时收到通知?

如何连接到Gtk.TreeView的信号,以便在选择行时通知我?目前我正在连接到row_activated信号,但这需要双击该行,我希望只需单击一下即可通知.

示例程序:

using Gtk;

public class MyListView : ScrolledWindow {
    ListStore list_store;
    TreeView tree_view;
    GLib.List<string> list;

    enum Columns {
        TEXT,
        N_COLUMNS
    }

    void make_list () {
        list = new GLib.List<string> ();
        list.append("Hello World");
        list.append("row 2");
        list.append("<b>bold</b>");
        list.append("<i>italic</i>");
        list.append("...");
        list.append("etc.");
    }

    public MyListView () {
        make_list();
        list_store = new ListStore(Columns.N_COLUMNS, typeof(string));
        tree_view = new TreeView.with_model(list_store);
        var text = new CellRendererText ();
        var column = new TreeViewColumn ();
        column.pack_start (text, true);
        column.add_attribute (text, "markup", Columns.TEXT);
        tree_view.append_column (column);
        tree_view.set_headers_visible (false);
        TreeIter …
Run Code Online (Sandbox Code Playgroud)

gtk listview vala gtktreeview

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