使用类在行上导入文件

问题描述 投票:0回答:1

我正在导入一个类模块,然后打开一个文本文件。也许我不是正确理解类,但我在想,如果我调用init构造函数,它会从文件中获取信息并将其置于该格式中。我已经阅读了很多问题,询问如何在这个网站上做这个,关于人们在阅读文本文件和使用它们的构造函数时遇到问题 - 但是没有看到任何结合导入文件和类组件的答案。这是我的班级代码:

class Apartments:
      def __init__(self,apartNum, rent, rooms, bath):
            self.apartNum=apartNum
            self.rent=rent
            self.rooms=rooms
            self.bath=bath

这是我要导入的文件:

import sys
sys.path.append("/Users/kabe/Desktop/Apartments")

import Apartments

dataFile = open('apartmentData.txt').readlines()

everything after this point is code I tried out but doesn't work.

apartmentsList = []
for line in dataFile:
    strippedLine=line.split()
    apartmentsList.append(Apartments)

for apartment in apartmentsList:
    print(apartment.apartNum + ' ' + apartment.rent + ' ' + apartment.rooms + ' ' + apartment.bath)
openfile()

此代码给出了以下错误:

Traceback (most recent call last):
  File "C:/Users/lortiz/Desktop/Memes/College/homework/l_kennedy_lab8_wk9.py", line 13, in <module>
    print(apartment.apartNum + ' ' + apartment.rent + ' ' + apartment.rooms + ' ' + apartment.bath)
AttributeError: module 'Apartments' has no attribute 'apartNum'

我正在尝试从我导入的文本文件中实现看起来像这样的类对象:

apt_1= Apartments(111,1000,1,1)
apt_2= Apartments(112,2000,2,1)
apt_3= Apartments(113,2500,2,2)
apt_4= Apartments(114,3000,3,2)
apt_5= Apartments(115,3500,3,3)

谢谢!

python class object import constructor
1个回答
0
投票
apartmentsList.append(Apartments(*strippedLine))

您应该添加Appartments实例,而不是类本身。

© www.soinside.com 2019 - 2024. All rights reserved.