为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUH函数 2022-03-09 21:25:54
我正在尝试为调度问题编写代码。今天我的代码有问题。我正在尝试将 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。


查看完整回答
反对 回复 2022-03-09
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号