如何在Python中为类的属性设置列表值

埃娜·皮安塔里(Erna Piantari)

我创建了一个类distance_neighbor,其中一个属性是class的对象列表Crime
那是我从数据库查询结果中获得的所有属性的值。

首先,我将data_Crimelist设置**Crimeclass上attribute的值distance_neighbor,并在使用完之后使用del清除了data_Crime list,以便该data_Crime列表可以在下一个循环中使用。

这是我的代码:

conn = psycopg2.connect("dbname='Chicago_crime' user='postgres'  host='localhost' password='1234'")
cur= conn.cursor()

minDistance=float(input("Nilai minimum distance : "))
cur.execute("""SELECT id_objek1, objek1, id_objek2, objek2, distance from tb_distance1 where distance<'%f'""" %(minDistance))

class Crime:
   def __init__(self, id_jenis, jenis):
      self.id_jenis=id_jenis
      self.jenis=jenis

class distance_neighbor (Crime):
   def __init__(self, distance, **Crime):
      self.distance = distance
      self.Crime = Crime

data_Crime =[]
data_distance = []

for id_objek1, objek1, id_objek2, objek2, distance in cur.fetchall():
    data_Crime.append(Crime(id_objek1,objek1))
    data_Crime.append(Crime(id_objek2,objek2))
    data_distance.append(distance_neighbor(distance, data_Crime))
    del data_Crime[:]

错误信息:

data_distance.append(distance_neighbor(distance, data_Crime))   
TypeError: __init__() takes exactly 2 arguments (3 given)

我已经使用以下答案修复了我的代码,谢谢

迈克·米勒

这应该更接近您想要的:

class Crime(object):
    def __init__(self, id_jenis, jenis):
        self.id_jenis=id_jenis
        self.jenis=jenis

class DistanceNeighbor(object):
    def __init__(self, distance, crimes):
        self.distance = distance
        self.crimes = crimes


data_distance = []
for id_objek1, objek1, id_objek2, objek2, distance in cur.fetchall():
    crimes = [Crime(id_objek1,objek1), Crime(id_objek2,objek2)]
    data_distance.append(DistanceNeighbor(distance, crimes))

Python 2中的类应始终从继承object按照惯例,类名在CamelCase中。

DistanceNeighborfrom的继承Crime似乎是不必要的。我改了

实例的属性应该是小写的,因此我使用的crimes不是类名的重用,而是令人困惑的重用Crime

这行:

def __init__(self, distance, **Crime):

将您的Crime实例列表分开作为单独的参数。在您的情况下,这意味着__init__接收:

distance, data_Crime[0], data_Crime[0]

这将导致以下错误消息:

TypeError: init() takes exactly 2 arguments (3 given)

的实例Crime很短。因此,您可以Crime在一行中创建两个实例的列表,而不是两个追加

crimes = [Crime(id_objek1,objek1), Crime(id_objek2,objek2)]

由于这样做会在每个循环中创建一个新列表,因此无需像在那样删除每个循环中的列表内容del data_Crime[:]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中为类方法设置字典的值?

来自分类Dev

如何将Python中另一个类的属性值设置为属性

来自分类Dev

Ruby-如何在类中为动态属性设置值

来自分类Dev

如何在janusgraph中为节点的属性设置null值?

来自分类Dev

如何在Scala中为属性设置值

来自分类Dev

如何通过基于 python 中的匹配属性迭代字典的键/值对,为列表中的每个项目分配新类?

来自分类Dev

如何在字典python列表中设置默认值?

来自分类Dev

如何从文件中读取项目到项目列表中,并将属性设置为文件中的值?

来自分类Dev

如何在Python中反转字典(其值为列表)?

来自分类Dev

如何在C#WPF中为派生类的基类设置值

来自分类Dev

为类中的属性设置默认值

来自分类Dev

将值设置为列表中的随机属性

来自分类Dev

如何在C ++类中为C字符串设置默认值?

来自分类Dev

如何在Camel Bindy的模型类中为布尔字段设置默认值

来自分类Dev

如何在Grails域类中正确设置属性值

来自分类Dev

如何在类列表中搜索类的特定属性?

来自分类Dev

如何在依赖项中为Maven的pom属性设置值?

来自分类Dev

如何在Java中的数组内为对象属性设置值

来自分类Dev

如何在编辑记录中为EnumDropDownListFor属性设置保存的值

来自分类Dev

如何在 TypeScript 中为 NULL 属性设置默认值

来自分类Dev

如何在Angular的子组件中单击按钮时为父组件属性设置值

来自分类Dev

如何在关键字中为可选列表参数设置默认值

来自分类Dev

除非更改,如何在localstorage中设置select下拉列表的值并检索它以及将其设置为默认值?

来自分类Dev

如何在Angular中将值设置为键值对属性?

来自分类Dev

如何在Angular中将插值设置为样式属性?

来自分类Dev

如何在类数组中设置类值

来自分类Dev

如何在Python的类中模拟属性

来自分类Dev

Python:如何使列表列表中的列表值为零

来自分类Dev

如何在python中以列表的形式获取类的所有属性

Related 相关文章

  1. 1

    如何在python中为类方法设置字典的值?

  2. 2

    如何将Python中另一个类的属性值设置为属性

  3. 3

    Ruby-如何在类中为动态属性设置值

  4. 4

    如何在janusgraph中为节点的属性设置null值?

  5. 5

    如何在Scala中为属性设置值

  6. 6

    如何通过基于 python 中的匹配属性迭代字典的键/值对,为列表中的每个项目分配新类?

  7. 7

    如何在字典python列表中设置默认值?

  8. 8

    如何从文件中读取项目到项目列表中,并将属性设置为文件中的值?

  9. 9

    如何在Python中反转字典(其值为列表)?

  10. 10

    如何在C#WPF中为派生类的基类设置值

  11. 11

    为类中的属性设置默认值

  12. 12

    将值设置为列表中的随机属性

  13. 13

    如何在C ++类中为C字符串设置默认值?

  14. 14

    如何在Camel Bindy的模型类中为布尔字段设置默认值

  15. 15

    如何在Grails域类中正确设置属性值

  16. 16

    如何在类列表中搜索类的特定属性?

  17. 17

    如何在依赖项中为Maven的pom属性设置值?

  18. 18

    如何在Java中的数组内为对象属性设置值

  19. 19

    如何在编辑记录中为EnumDropDownListFor属性设置保存的值

  20. 20

    如何在 TypeScript 中为 NULL 属性设置默认值

  21. 21

    如何在Angular的子组件中单击按钮时为父组件属性设置值

  22. 22

    如何在关键字中为可选列表参数设置默认值

  23. 23

    除非更改,如何在localstorage中设置select下拉列表的值并检索它以及将其设置为默认值?

  24. 24

    如何在Angular中将值设置为键值对属性?

  25. 25

    如何在Angular中将插值设置为样式属性?

  26. 26

    如何在类数组中设置类值

  27. 27

    如何在Python的类中模拟属性

  28. 28

    Python:如何使列表列表中的列表值为零

  29. 29

    如何在python中以列表的形式获取类的所有属性

热门标签

归档