当我用Python编程并且我需要导入多个模块时,我通常喜欢这样:
import random, time, matplotlib, cheese, doge
Run Code Online (Sandbox Code Playgroud)
然后,当我阅读其他人的代码时,这就是我所看到的:
import random
import time
import matplotlib
import cheese
import doge
Run Code Online (Sandbox Code Playgroud)
为什么是这样?这两种风格有什么区别吗?
考虑以下代码:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
class First(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
x = Button(text='somebutton')
x.bind(on_press=lambda*_: print('First press'))
x.bind(on_press=lambda*_: print('Second press'))
self.add_widget(x)
def something(self, *somethingishereignored):
print("I have something")
class FChooser(App):
def build(self):
return First()
if __name__ == '__main__':
FChooser().run()
Run Code Online (Sandbox Code Playgroud)
这段代码的行为是,在我按下“somebutton”按钮后,它会打印:
Second press
First press
Run Code Online (Sandbox Code Playgroud)
所以,我用谷歌搜索发现我应该使用 unbind() 函数,然后我添加了这个:
Second press
First press
Run Code Online (Sandbox Code Playgroud)
但输出没有改变。它仍然是相同的输出。如何释放绑定?这只是一个最小的示例,我打算使用此功能来动态地将函数绑定和取消绑定到按钮,以向同一按钮添加各种功能。