Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中将变量值从一个方法传递到另一个方法_Python_List_Function - Fatal编程技术网

在python中将变量值从一个方法传递到另一个方法

在python中将变量值从一个方法传递到另一个方法,python,list,function,Python,List,Function,我试图验证用户输入的值,用户输入的值存储在一个方法中,其值验证在另一个方法中完成。但我面临的问题是如何在不同方法之间使用变量值。我们如何在python中做到这一点?我得到一个错误-“userDetailsValidation未定义”这是我的代码: from userAccountDatabase import * def userInputs(): userDetails=[] firstName=str(input("Enter First Name").upper()) whi

我试图验证用户输入的值,用户输入的值存储在一个方法中,其值验证在另一个方法中完成。但我面临的问题是如何在不同方法之间使用变量值。我们如何在python中做到这一点?我得到一个错误-“userDetailsValidation未定义”这是我的代码:

from userAccountDatabase import *
def userInputs():
  userDetails=[]
  firstName=str(input("Enter First Name").upper())

  while True:
    if(userDetailsValidation(firstName, "FirstName", accountDetails))==True:
      userDetails.append(firstName)
      break
    else:
      print('Enter valid First Name')
     firstName=str(input("Enter First Name").upper())

  LastName=str(input("Enter Last Name").upper())

  while True:
  if(userDetailsValidation(LastName, "LastName", accountDetails))==True:
    userDetails.append(LastName)
    break
  else:
    print('Enter valid last Name')
    firstName=str(input("Enter Last Name").upper())

  dateOfBirth=str(input("Enter date of birth"))

  while True:
  if(userDetailsValidation(dateOfBirth, "LastName", accountDetails))==True:
    userDetails.append(dateOfBirth)
    break
  else:
    print('Enter valid dateOfBirth ')
    firstName=str(input("Enter dateOfBirth").upper())
  # return firstName,LastName,dateOfBirth
userInputs()



def userDetailsValidation(value, fieldName, database):
  print("The account does not exist with the given details,Enter valid First name")
  for entry in database:
    if fieldName in entry and entry[fieldName] == value:
      print("correct value")
      return True     
    else:
      return False

def printRequiredUserInfo(FirstName,fieldname,AccountNumber,Accountbalance,Database):
  for entry in Database:     
    if fieldname in entry and entry[fieldname] == FirstName:
    print(entry)
printRequiredUserInfo(firstName,"FirstName","Account Number","Account Balance",accountDetails)

if(userDetailsValidation(dateOfBirth,“LastName”,accountDetails))中调用userDetailsValidation函数时,仍然无法解析该函数==True:

您可以在userInputs()之前移动userDetailsValidation()的实现,也可以在定义userDetailsValidation()之后移动对userInputs()的调用

关于在一个函数中使用另一个函数中的变量值的问题,您有多种选择

  • 将变量声明为全局变量。这样,您就可以在模块内的所有功能中访问它们
  • 在类内实现函数并为此类创建成员变量
  • 返回感兴趣的变量
请修复压痕。无法区分什么是方法的一部分,什么不是。多余的空白会像没有空白一样损害可读性。好的,让我编辑我的代码。您需要将函数userDetailsValidation移到使用它的位置上方,以便定义它。