在 Python 中,我如何获得一个函数来返回 100 个 Point 对象的列表?

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

不太确定我哪里出错了。到目前为止,这是我的代码:

"""Write a function that generates 100 Point objects"""

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

def generate_points(y_list):
    points = []
    for i in range(len(y_list)):
        points.append(Point(i+1, y_list[i]))
    return points

y_list = [20,93,72,35,54,95,25,37,29,72,65,66,49,43,35,61,97,66,64,22,83,69,19,21,69,40,35,81,15,41,74,12,3,65,31,12,48,68,41,40,99,13,70,30,20,35,84,96,1,93,61,83,24,27,93,86,96,43,10,51,27,87,40,35,83,44,15,89,71,79,25,84,43,49,66,0,88,80,4,3,74,10,41,45,75,34,41,45,75,34,41,44,50,99,41,37,26,6,94,94,76,48,3,2,42]

points = generate_points(y_list)

Pycharm 说代码是正确的,但函数没有返回列表?

我期待看到这个:(https://i.stack.imgur.com/TXnUX.png

python object point
1个回答
0
投票

如果你的意思是 print(points) 不打印你想要的,你可以覆盖 object.__repr__(self) 方法:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    
    def __repr__(self):
        return f'({self.x}, {self.y})'

然后,print(points) 会打印成这样:

[(1, 20), (2, 93), (3, 72), (4, 35), (5, 54), (6, 95), (7, 25), (8, 37), (9, 29), (10, 72), (11, 65), (12, 66), (13, 49), (14, 43), (15, 35), (16, 61), (17 , 97), (18, 66), (19, 64), (20, 22), (21, 83), (22, 69), (23, 19), (24, 21), (25, 69 ), (26, 40), (27, 35), (28, 81), (29, 15), (30, 41), (31, 74), (32, 12), (33, 3), (34, 65), (35, 31), (36, 12), (37, 48), (38, 68), (39, 41), (40, 40), (41, 99), (42 , 13), (43, 70), (44, 30), (45, 20), (46, 35), (47, 84), (48, 96), (49, 1), (50, 93 ), (51, 61), (52, 83), (53, 24), (54, 27), (55, 93), (56, 86), (57, 96), (58, 43), (59, 10), (60, 51), (61, 27), (62, 87), (63, 40), (64, 35), (65, 83), (66, 44), (67 , 15), (68, 89), (69, 71), (70, 79), (71, 25), (72, 84), (73, 43), (74, 49), (75, 66 ), (76, 0), (77, 88), (78, 80), (79, 4), (80, 3), (81, 74), (82, 10), (83, 41), (84, 45), (85, 75), (86, 34), (87, 41), (88, 45), (89, 75), (90, 34), (91, 41), (92 , 44), (93, 50), (94, 99), (95, 41), (96, 37), (97, 26), (98, 6), (99, 94), (100, 94 ), (101, 76), (102, 48), (103, 3), (104, 2), (105, 42)]

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