[英]storing values from csv file to the attributes of a class
我正在尝试编写调度问题的代码。 今天我的代码出了问题。 我试图将csv文件中的值存储到类的属性中。 请帮我理解一下。
import math
import csv
from math import radians, sin, cos, acos
class 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'
当你在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
inside它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.