Python- 如何访问函数外的变量?

2024-06-28 10:59:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从函数外部访问变量。我添加了global sayacglobal sayi(从其他相关问题中看到),但我仍然无法访问它们。以下是我在课程中遇到的问题:

def guesss(self):
    global tahmin
    global sayac
    tahmin=self.tahminn.text()
    sayac=sayac +1
    tahmin = int(tahmin)
    if tahmin==sayi:
        self.durum.setText ("Tahmininiz doğru!")
        QtGui.QMessageBox.warning(None,"Tahmininiz doğru","Doğru sayıyı ",sayac," denemede buldunuz!")
        self.tahminett.setEnabled(False)
        self.tahminn.setEnabled(False)
        self.ybaslatt.show()
    elif tahmin>sayi:
        self.durum.setText("Tahmininiz doğru sayıdan büyük.")
    elif tahmin<sayi:
        self.durum.setText("Tahmininiz doğru sayıdan küçük.")
    else:
        QtGui.QMessageBox.warning(None,"Geçersiz sayı","Sadece 1 ile 100 arasında bir sayı girebilirsiniz.")    

完整程序:

^{pr2}$

Tags: selfruglobaldosaywarningsettextqtgui
2条回答

当问一个问题时,把问题本身包括进来通常是一种好的形式,同时也表明了事情的出乎意料的表现,以及预期的结果。在

关于global要记住的主要一点是它不创建变量。它只通知编译器这些名称属于外部作用域(模块级而不是函数级)。因此,组合如下:

global sayac
sayac=sayac +1

要求sayac已经设置为可以添加的内容。实际上,代码没有设置它们的初始值。在

此外,baslat_btn似乎至少存在两个问题:

^{pr2}$

首先,在这个函数中没有global语句。因此,这两个变量的作用域是局部的。其次,该函数只能返回一次,因此将只返回sayi,尽管这个返回值似乎无论如何都没有使用。在

最后,为什么要使用全局范围?似乎所有的逻辑都包含在一个Ui_MainWindow对象中;没有理由它不能保持状态。考虑到它与主窗口的关系有多紧密,一些编码风格会使它成为QMainWindow的子类。在

我建议在声明变量的位置和使用变量之前尝试使用global关键字。每当我在使用全局变量时,我都会这样做。在

相关问题 更多 >