繁体   English   中英

将csv文件中的值存储到类的属性中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM