首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中的多个方法中使用var

如何在python中的多个方法中使用var
EN

Stack Overflow用户
提问于 2021-10-28 17:12:45
回答 4查看 71关注 0票数 0

我的代码中有几个与数据库对话的文件

这可能看起来像这样:

代码语言:javascript
运行
复制
def addUser():
  # some code

def verifyUser():
  # some code

def addStuffToDB():
  # some code

在上面的所有代码中,我需要使用一个变量-让我们称它为db -它保存了对数据库的引用(而不是在每个函数中重新定义它)

我该怎么做呢?如何让一个或多个文件中的函数都使用一个变量(在本例中为db)

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-10-28 17:23:21

正如@ddejohn所说,您应该将函数包装在一个类中,这样变量self.db就会有一个类作用域。

代码语言:javascript
运行
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2021-10-28 17:20:21

如果所有这些函数都在同一个文件中,那么只需在任何函数外部定义变量db就足够了(这将使其成为全局的)。现在所有函数都可以看到db变量了。但是如果你在函数内部改变db,它不会在函数外部改变。

如果您在另一个文件中有此变量,则可以简单地导入它,如下所示

代码语言:javascript
运行
复制
from file_name import db
票数 2
EN

Stack Overflow用户

发布于 2021-10-28 17:19:43

谢谢你提出这个问题。在调用函数时,需要将db作为参数传递,如下所示

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69758364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档