zpl*_*lot 3 python multiple-instances instances
我有一个叫做的课Points,我需要创造100分.我需要做类似的事情:
class Point(object)
...
for i in range(1,100):
pi = Point()
Run Code Online (Sandbox Code Playgroud)
点应该被命名为p1,p2,...p100
显然,上面的行不起作用.
问题是:我知道我可以exec在循环内部使用创建100个点但是有没有更好的方法可以不使用exec?
您可以使用列表推导创建多个对象:
# 100 points in list
points = [Point() for _ in range(100)]
Run Code Online (Sandbox Code Playgroud)
在Python中,创建/使用动态变量被认为是一种不好的做法.您很容易忘记它们,导致名称冲突等.
相反,您可以使用dict理解并str.format创建命名实例的字典:
points_dict = {"p{}".format(x):Point() for x in range(1, 101)}
Run Code Online (Sandbox Code Playgroud)
然后,您可以按名称访问这些实例,如下所示:
points_dict["p1"]
points_dict["p10"]
# etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |