我的代码中有几个与数据库对话的文件
这可能看起来像这样:
def addUser():
# some code
def verifyUser():
# some code
def addStuffToDB():
# some code在上面的所有代码中,我需要使用一个变量-让我们称它为db -它保存了对数据库的引用(而不是在每个函数中重新定义它)
我该怎么做呢?如何让一个或多个文件中的函数都使用一个变量(在本例中为db)
谢谢
发布于 2021-10-28 17:23:21
正如@ddejohn所说,您应该将函数包装在一个类中,这样变量self.db就会有一个类作用域。
class DB():
def __init__(self) -> None:
self.db = "DB_connection or something..."
def addUser(self):
#Some code, acess db variable with self.db
def verifyUser(self):
#Some code, acess db variable with self.db
def addStuffToDB(self):
#Some code, acess db variable with self.db
MyDB = DB()
MyDB.addUser()发布于 2021-10-28 17:20:21
如果所有这些函数都在同一个文件中,那么只需在任何函数外部定义变量db就足够了(这将使其成为全局的)。现在所有函数都可以看到db变量了。但是如果你在函数内部改变db,它不会在函数外部改变。
如果您在另一个文件中有此变量,则可以简单地导入它,如下所示
from file_name import db发布于 2021-10-28 17:19:43
谢谢你提出这个问题。在调用函数时,需要将db作为参数传递,如下所示
db = "some referenec"
def addUser(database):
## now you can use db
# some code
def verifyUser(database):
# some code
## now you can use db
def addStuffToDB(database):
# some code
## now you can use db
## while calling each func pass db as argument like this
addUser(db)
verifyUser(db)
addStuffToDB(db)https://stackoverflow.com/questions/69758364
复制相似问题