python @ 修饰符的作用

PyQt5 专栏收录该内容
8 篇文章 0 订阅

最近在学pyqt5,遇到的一些知识点记录一下,在Python的函数中偶尔会看到函数定义的上一行有@functionName的修饰。

解释:当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象。

比如:
@a
@b
def c():

python会按照自下而上的顺序把各自的函数结果作为下一个函数(上面的函数)的输入,也就是a(b(c()))

 

再举个pyqt5的栗子:

@pyqtSlot()就是个修饰符

from PyQt5.QtCore import pyqtSlot
from PyQt5.QtWidgets import QMainWindow,  QApplication
from ui_mainWin02 import Ui_MainWindow
import sys

class layoutDemo(QMainWindow,  Ui_MainWindow):
	def __init__(self,  parent = None):
		super(layoutDemo,  self).__init__(parent)
		self.setupUi(self)
	
	@pyqtSlot()
	def on_pushButton_clicked(self):
		"""
		Slot documentation goes here.    
		"""
		print('收益_min:',  self.doubleSpinBox_Returns_min.text())
		print ('收益_max:',  self.doubleSpinBox_Returns_max.text())
		
if __name__ == "__main__":
	app = QApplication(sys.argv)
	ui = layoutDemo() #开个对象
	ui.show()
	sys.exit(app.exec_())

另外再解释下:

 1、     if __name__ == "__main__":

如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。

这个功能还有一个用处:调试代码的时候,在”if __name__ == '__main__'“中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行!

 

 

  • 0
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值