【问题标题】:Calling functions and passing arrays in python在python中调用函数和传递数组
【发布时间】:2020-01-25 15:04:22
【问题描述】:

我是新来的,也是 python 的新手。我通常习惯于 C、javascript 和 php 编码。

我正在尝试调用一个函数来执行 SQL 查询,然后将数据添加到一些数组中。

然后我想将多个数组传递给另一个函数以打印它们,并且能够随意访问该数组的任何部分。

总结一下......我有两个功能,一个从 sql 查询中收集信息,并将列和行存储到几个数组中。下一个函数应该从前一个函数中获取那些传递的数组并打印它们(现在)。我只是想把数组放到下一个函数中,这样我以后就可以用它们做我需要的了。传递它们是我遇到麻烦的里程碑我只是不太确定如何调用函数并正确编码它们以便第一个函数将数组传递给下一个函数以进行打印或对数组执行任何需要的操作

不确定我在这里做的是否正确,只是想知道是否有人可以指出我正确的方向。

谢谢

import mysql.connector


def grabdata():

    mydb = mysql.connector.connect(
      host="xxxxxxxxxx",
      user="xxxxxxx",
      passwd="xxxxxxx",
      database="vmware"
    )

    print(mydb)

    mycursor = mydb.cursor()

    mycursor.execute("select UserID, VMName, VMTemplate FROM VM WHERE CommissionStatus='commissioned';")


    ReturnedUser_id = []
    ReturnedVMName = []
    ReturnedVMTemplate = []

    for (User_id, VMName, VMTemplate) in mycursor:
        ReturnedUser_id.append(User_id)
        ReturnedVMName.append(VMName)
        ReturnedVMTemplate.append(VMTemplate)

    return(ReturnedUser_id,ReturnedVMName)






def printdata(ReturnedUser_id,ReturnedVMName):




    testarray = ReturnedUser_id
    testarray2 = ReturnedVMName

    print(testarray[2])
    print(testarray2[2])

    return()

【问题讨论】:

  • 您遇到了什么问题?我不是很清楚这个问题。
  • 我有两个功能,一个从 sql 查询中收集信息,并将列和行存储到几个数组中。下一个函数应该从前一个函数中获取那些传递的数组并打印它们(现在)。我只是想把数组放到下一个函数中,这样我以后就可以用它们做我需要的了。传递它们是我遇到麻烦的里程碑我只是不太确定如何调用函数并正确编码它们以便第一个函数将数组传递给下一个函数以进行打印或对数组执行任何需要的操作.

标签: python sql arrays function parameters


【解决方案1】:

您正在定义函数,但从未真正调用它们。尝试在文件末尾添加类似这样的内容:

if __name__ == '__main__':
    user_id, vm_name = grabdata()
    printdata(user_id, vm_name)

if __name__ == "__main__": 块的内容就是当这个文件作为主程序运行时将执行的内容。

例如,如果您要将此文件导入另一个文件,则不会执行 if __name__ == "__main__"

【讨论】: