我正在嘗試為調度問題編寫代碼。今天我的代碼有問題。我正在嘗試將 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
提交
取消