def pick2(self, *args): # 处理事件,*args表示可变参数 cursor.execute(f"SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{combobox2.get()}'") global column_name column_name = [] for row in cursor.fetchall(): column_name.append(row.COLUMN_NAME) global en_n en_n=[] global de_n de_n=[] for i in column_name: if i not in en_n: de_n.append(i) for i in en_n: w1.insert('end', i + '\n') for i in de_n: w2.insert('end', i + '\n')为什么在这个函数之外en_n和de_n不能用了
时间: 2024-03-03 15:52:08 浏览: 11
在这个函数中,你使用了 `global` 关键字,这意味着你想要在函数内部使用全局变量。但是,在函数之外,如果没有定义这些变量,那么它们就不存在。因此,你需要在函数之外定义这些变量,以便它们在函数内部和外部都能使用。你可以在函数之外添加以下代码来定义这些变量:
```
en_n = []
de_n = []
```
这样,这些变量就可以在函数内部和外部使用了。
相关问题
def __init__(self, *args): super().__init__(*args)
### 回答1:
这是一段 Python 代码,是一个类的构造函数(`__init__` 方法)。
它使用了 `super()` 函数,用于调用父类的构造函数,并将 `*args` 作为实参传递给父类的构造函数。
这段代码的作用是在创建该类的实例时,先调用父类的构造函数,然后再执行该类的构造函数的其他代码。
### 回答2:
这段代码是Python中类的初始化方法,即构造函数。在定义类时,使用`__init__`方法来初始化类的实例。构造函数的作用是在创建对象时,对对象的属性进行初始化。
在给定的代码中,`self`是一个特殊的参数,表示类的实例对象本身。而`*args`是一个可变参数,表示可以接收任意数量的位置参数。
`super()`是一个内置函数,用于调用父类的方法。在上述代码中,`super().__init__(*args)`表示调用父类的初始化方法,并将所有传入的参数都传递给父类的初始化方法进行处理。
通过这样的初始化过程,子类的实例对象可以继承父类的属性和方法,并按照需要进行进一步的定制和扩展。
总之,给定的代码定义了一个类的初始化方法,用于初始化类的实例。通过调用父类的初始化方法,可以继承父类的属性和方法,并实现类的特定功能。
### 回答3:
这段代码是一个类的初始化函数`__init__`,使用了可变参数`*args`。在类的定义中,`super()`表示调用父类的方法。当使用`super().__init__(*args)`时,表示调用父类的初始化函数,并将`*args`作为参数传递给父类的初始化函数。
使用`*args`可以接收任意数量的参数,并把它们存储为一个元组传递给函数。在这个例子中,`*args`可以接收任意数量的参数,并传递给父类的初始化函数。这样做的好处是在子类的初始化函数中可以不用指定具体的参数,而可以接收并传递任意数量的参数。
通过调用父类的初始化函数`super().__init__(*args)`,可以确保父类的初始化操作会被正确执行。同时,子类也可以在自己的初始化函数中添加额外的初始化操作。
总结而言,这段代码的作用是定义了一个类的初始化函数,使用可变参数`*args`接收任意数量的参数,并将这些参数传递给父类的初始化函数,以完成父类和子类的初始化操作。
class QRegExpValidator(QValidator): """ QRegExpValidator(parent: typing.Optional[QObject] = None) QRegExpValidator(rx: QRegExp, parent: typing.Optional[QObject] = None) """ def childEvent(self, *args, **kwargs): # real signature unknown pass def connectNotify(self, *args, **kwargs): # real signature unknown pass def customEvent(self, *args, **kwargs): # real signature unknown pass def disconnectNotify(self, *args, **kwargs): # real signature unknown pass def isSignalConnected(self, *args, **kwargs): # real signature unknown pass def receivers(self, *args, **kwargs): # real signature unknown pass def regExp(self): # real signature unknown; restored from __doc__ """ regExp(self) -> QRegExp """ pass def sender(self, *args, **kwargs): # real signature unknown pass def senderSignalIndex(self, *args, **kwargs): # real signature unknown pass def setRegExp(self, rx): # real signature unknown; restored from __doc__ """ setRegExp(self, rx: QRegExp) """ pass def timerEvent(self, *args, **kwargs): # real signature unknown pass def validate(self, input, pos): # real signature unknown; restored from __doc__ """ validate(self, input: str, pos: int) -> Tuple[QValidator.State, str, int] """ pass def __init__(self, *__args): # real signature unknown; restored from __doc__ with multiple overloads pass 这段代码是在干什么
这段代码定义了一个名为QRegExpValidator的类,它是QValidator的子类。它提供了一些用于验证输入的正则表达式功能。
该类有两个构造函数,可以选择传入一个父对象和一个QRegExp对象。它还实现了一些事件处理函数,如childEvent、connectNotify、customEvent、disconnectNotify、isSignalConnected、receivers、sender、senderSignalIndex和timerEvent。
此外,它还提供了一些公共方法,如regExp、setRegExp和validate。其中,regExp方法返回一个QRegExp对象,setRegExp方法用于设置要使用的正则表达式,validate方法用于验证输入字符串并返回验证结果。