Python使用gi.repository结合了两个函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python使用gi.repository结合了两个函数相关的知识,希望对你有一定的参考价值。
我在我的代码中使用gi.repository
进行桌面通知,我创建了2个不同的函数,以便从本地计算机加载2个不同的图像,并将它们显示在桌面通知气泡中,具体取决于满足的条件。为此我编写了一个简单的代码来向您展示我需要实现的目标。我希望尽可能保持我的代码尽可能干净,并且想知道这两个函数是否可以合并在一起并仍然加载图像。我可能在我的代码中稍后使用8个不同的图像,并且具有8个相同的功能看起来不太好。
import gi
gi.require_version("Notify", "0.7")
from gi.repository import Notify, GdkPixbuf
def sunny(arg1, arg2):
notification = Notify.Notification.new(arg1, arg2)
image = GdkPixbuf.Pixbuf.new_from_file("_sunny_day.png")
notification.set_icon_from_pixbuf(image)
notification.set_image_from_pixbuf(image)
notification.show()
def cloudy(arg1, arg2):
notification = Notify.Notification.new(arg1, arg2)
image = GdkPixbuf.Pixbuf.new_from_file("_cloudy_day.png")
notification.set_icon_from_pixbuf(image)
notification.set_image_from_pixbuf(image)
notification.show()
while 1:
var1 = 'Something will be here, maybe URL'
if var1 == 'Sunny':
sunny('Arg1', 'Arg2')
elif var1 == 'Cloudy':
cloudy('Arg1', 'Arg2')
答案
由于两个函数之间唯一不同的是图像路径,只需将其传递给:
def weather(arg1, arg2, image_path):
notification = Notify.Notification.new(arg1, arg2)
image = GdkPixbuf.Pixbuf.new_from_file(image_path) # Here
notification.set_icon_from_pixbuf(image)
notification.set_image_from_pixbuf(image)
notification.show()
然后使用它:
weather(arg1, arg2, "_sunny_day.png")
weather(arg1, arg2, "_cloudy_day.png")
我不知道你究竟想要什么叫这个功能。 weather
只是一个占位符。
以上是关于Python使用gi.repository结合了两个函数的主要内容,如果未能解决你的问题,请参考以下文章
使用 libnotify 的 Python 3 脚本作为 cron 作业失败
Gtk.CssProvider 在 Gtk3 Python3 中不起作用?