Python:试图将函数参数传递给类中的另一个函数,get-NameError:name'';没有定义

Python:试图将函数参数传递给类中的另一个函数,get-NameError:name'';没有定义,python,class,methods,arguments,Python,Class,Methods,Arguments,这里是Python新手。我正在写一个类,它有一个方法来计算两组坐标之间的距离。此方法包含两个参数: 房屋的一对坐标 地铁站的一对坐标 这是我的代码: import pymysql.cursors class Test(object): def __init__(self): self.create_connection() def create_connection(self): self.conn = pymysql.connect(hos

这里是Python新手。我正在写一个类,它有一个方法来计算两组坐标之间的距离。此方法包含两个参数:

  • 房屋的一对坐标
  • 地铁站的一对坐标
  • 这是我的代码:

    import pymysql.cursors
    
    class Test(object):
    
        def __init__(self):
            self.create_connection()
    
        def create_connection(self):
            self.conn = pymysql.connect(host='localhost',
                                    user='root',
                                    password='',
                                    db='testDB',
                                    charset='utf8mb4',
                                    cursorclass=pymysql.cursors.DictCursor)
            self.cursor = self.conn.cursor()
    
        def __del__(self):
            self.c_coord()
            self.q_coord()
            self.calc_dist(cCoord, qCoord)
            self.closeDB
    
        def c_coord(self):
    
            sql = "SELECT ID, coordinates from target where coordinates != 'NA'"
    
            self.cursor.execute(sql)
    
            # a dictionary cursor returns every row in the sql statement as a dictionary
            cCoord = self.cursor.fetchall()
    
            return cCoord
    
        def q_coord(self):
    
            sql = "SELECT station, coordinates from qSubway"
    
            self.cursor.execute(sql)
    
            qCoord = self.cursor.fetchall()
    
            return qCoord
    
        # return min subway and distance
        def calc_dist(self, cCoord, qCoord):
    
            print(cCoord)
            print(qCoord)
    
        def closeDB(self):
            self.conn.close()
    
    当我在python控制台中运行此命令时,得到的结果如下:

    slsu=测试()

    slsu.c_coord() [{'ID':6221530552,'坐标':'40.745300,-73.861100'}

    slsu.q_coord() [{'station':'21th Street(IND Crosstown Line)','坐标':'40.744591,-73.948674'}

    slsu.计算区(cCoord、qCoord) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 NameError:未定义名称“cCoord”


    我需要一些帮助来理解这个错误以及如何修复它?我想如果你把一个参数传递给函数,它应该会自动识别它?

    你必须声明变量cCoord和qCoord。函数不返回你可以使用的变量。把函数想象成一个黑匣子。它可以使用你给它的变量,但任何它所做的更改不会影响该函数以外的任何内容。return命令只意味着,如果将变量设置为c_Coord(),则该变量将具有该函数返回的值。若要解决此问题,请将变量设置为两个Coord函数

    cCoord = c_Coord()
    qCoord = q_Coord()
    

    这两个函数都在运行,现在您可以使用它们在这些函数之外返回的值。

    No,return语句并没有将
    ccood
    qCoord
    的值保存到这些变量,它只是简单地返回它们。您需要将这些返回值分配给变量,然后将其传递给下一个函数为了澄清,当使用“self”时,语法将是:cCoord=self.c_-Coord()qCoord=self.q_-Coord()
    cCoord = c_Coord()
    qCoord = q_Coord()