python中的对象列表_Python:操作对象列表中的参数。

文件1

['2.02', '-3.88', '15.25']

['4.40', '-2.36', '14.97']

文件2

['P1']

['P2']

问题是,当直接给对象赋值时,grade_compass()函数可以正常工作。当对象从解析器中提取相同的值时,它似乎没有经过这个函数。

整个代码:

from ast import literal_eval

class Compass:

#initialize the attributes

def __init__(self, coordX, coordY, coordZ, Pos):

self.coordx = coordX

self.coordy = coordY

self.coordz = coordZ

self.coord_pos = Pos

def merge_files(infile1, infile2):

with open(infile1) as f1, open(infile2) as f2:

l3 = [] # this is a list for storing all the lines from both files

f1_lists = (literal_eval(line) for line in f1)

f2_lists = (literal_eval(line) for line in f2)

for l1, l2 in zip(f1_lists, f2_lists):

l3.append(l1 + l2)

return l3 # Return all the lines from both text files

def check_step_xrange(coordx):

if coordx > 0.00 and coordx < 7.99:

return "short"

def check_step_zrange(coordz):

if coordz > 4.40 and coordz < 20.00:

return "short"

# Ignore coordy for now

def grade_compass(coordx, coordy, coordz):

if check_step_xrange(coordx) == "short" and check_step_zrange(coordz) == "short":

compass_degree = "compass degree is short"

return compass_degree

def main():

file1 = "coordinates1.txt"

file2 = "coordinates2.txt"

args = merge_files(file1, file2)

# List of instances

compasslist = [Compass(args[i][0], args[i][1], args[i][2], args[i][3]) for i in range(len(args))]

# I just pull the first instance

print "\nThis is the object from the object list"

print compasslist[0].coordx + ' ' + compasslist[0].coordy + ' ' + compasslist[0].coordz + ' ' + compasslist[0].coord_pos

print grade_compass(compasslist[0].coordx, compasslist[0].coordy, compasslist[0].coordz)

print "\nThis is the object manually given"

h = Compass(2.02, -3.88, 15.25, 'P1')

print h.coordx, h.coordy, h.coordz, h.coord_pos

print grade_compass(h.coordx, h.coordy, h.coordz)

if __name__ == '__main__':

main()

第一个输出不返回任何值。当人工给予时,它起作用。

This is the object from the object list

2.02 -3.88 15.25 P1

None

This is the object manually given

2.02 -3.88 15.25 P1

compass degree is short

期望输出:

This is the object from the object list

2.02 -3.88 15.25 P1

compass degree is short

This is the object manually given

2.02 -3.88 15.25 P1

compass degree is short

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值