Python:试图将函数参数传递给类中的另一个函数,get-NameError:name'';没有定义
这里是Python新手。我正在写一个类,它有一个方法来计算两组坐标之间的距离。此方法包含两个参数: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
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()