我正在尝试为调度问题编写代码。今天我的代码有问题。我正在尝试将 csv 文件中的值存储到类的属性中。请帮助我理解它。import mathimport csvfrom math import radians, sin, cos, acosclass masterTrainer: #class generated for the master trainers for the whole state with open("mtData.csv", "r") as f_input: csv_input = csv.DictReader(f_input) for row in csv_input: masterTrainer.name = row['Name'] masterTrainer.location = row['Location'] masterTrainer.subject = row['Subject'] masterTrainer.latitude = row['latitude'] masterTrainer.longitude = row['longitude'] def distanceCalculator(latitude1,longitude1,latitude2,longitude2): slat = radians(latitude1) slon = radians(longitude1) elat = radians(latitude2) elon = radians(longitude2) dist = 6371.01 * acos(sin(slat)*sin(elat) + cos(slat)*cos(elat)*cos(slon - elon)) print("The distance is %.2fkm." % dist)class venue: with open("venueData.csv", "r") as f_input: csv_input = csv.DictReader(f_input) for row in csv_input: venue.name = row['Name'] venue.latitude = row['latitude'] venue.longitude = row['longitude']print(masterTrainer.distanceCalculator(float(masterTrainer.latitude),float(masterTrainer.longitude),float(venue.latitude),float(venue.longitude)),masterTrainer.name, venue.name)上面的代码显示了一个属性错误。AttributeError: type object 'masterTrainer' has no attribute 'latitude'
1 回答

斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
当您在 python 中声明一个类,并希望在该类的某个成员上存储值时,正确的做法是:
class NameOfClass:
def __init__(self, something, ...): #of course change "..." to the rest of arguments
self.someAttribute = something
所以,首先定义一个方法调用__init_\_(self, ...):并把你with open(....) as ...:放在里面,然后把所有的改成masterTrainer.whatever里面self.whatever。
添加回答
举报
0/150
提交
取消