python - 如何使用 python 3.x 在同一文件中的所有函数中使用变量值
问题描述
我有一个需要用户输入并将其存储在变量中的函数。现在当我想在其他函数中使用这个变量时,我必须先执行input()
函数,因此我必须再次提供输入。是否有可能我也可以在其他函数中使用变量 get_input 而无需执行input()
函数或再次提供输入?我尝试将变量声明为global
也但没有用。
可能吗?
def input():
get_input = str(input("please provide name"))
return get_input
def output():
val = input() # it is executing the function input() and hence need to prvoide input
def getvalue():
val = input() # it is executing the function input() and hence need to provide input
我们不能将输入值存储在一个变量中并在文件中的所有函数中使用它吗?
return
正在使功能每次都执行,因此每次都必须提供输入
解决方案
你不需要全局变量。您可以创建一个函数来包装对输入的调用并简单地返回一个缓存值。
cachedinput.py (定义函数)
from functools import partial, cache
getname = cache(partial(input, 'please provide name: '))
usecachedinput.py (调用函数)
from cachedinput import getname
print(getname())
print(getname())
print(getname())
print(getname())
print(getname())
它只会询问名称一次。它还可以导出变量而不是函数。
如果functool.partial
这里的使用有点太神秘了。它可以实现为cache
用作装饰器的函数。
@cache
def getname2():
return input('please provide name: ')
推荐阅读
- html - 使用对象拟合:cover 和 srcset
- php - nodejs续集中的月份(createdAt)
- linux - Azure DevOps 部署管道 - 如何找到用于 Linux 映像名称的价值?
- python - 如何递归检索json数组中的嵌套值?
- sql - 从 SQL Server 中的多个表中按顺序获取行
- java - Java HashMap 添加新条目的方法(如果还没有的话)
- kotlin - Kotlin 类型差异
- javascript - 加入两个正则表达式,用于嵌套引号支持
- javascript - 如何调用JS数组项/读取控制台日志返回
- json - json自适应卡内的多个if-else