2022年 11月 5日

如何利用python语言实现对象数组

1 Java代码示例

//定义一个类

class Triple {
	int user;
	int item;
	double rating;
  • 1
  • 2
  • 3
  • 4
  • 5

//声明对象数组

Triple[] dataset = new Triple[20];
  • 1

//利用对象数组访问成员变量

for(int i = 0; i < dataset.length; i ++){
	dataset[i].user = 0; 
	dataset[i].item = 0
	dataset[i].rating = 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5

问题一:如何利用python实现类似功能呢?
问题二:如何利用python将对象数组作为参数?

public void function1(Triple[] paraDataset){
	for(int i = 0; i < paraDataset.length; i ++){
		paraDataset[i].user = 0; 
		paraDataset[i].item = 0
		paraDataset[i].rating = 0;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2 Python代码(针对问题1)

#定义一个类

class Triple:
    def __init__(self, para_user: int = 0, para_item: int = 0, para_rating: float = 0):
        self.user = para_user
        self.item = para_item
        self.rating = para_rating
  • 1
  • 2
  • 3
  • 4
  • 5

#声明一维对象数组

dataset = [Triple() for _ in range(20)]
  • 1

#声明二维对象数组

dataset = [[Triple() for _ in range(5)] for _ in range(4)]
  • 1

#利用对象数组访问成员变量

for i in range(20):
	dataset[i].user = 0
	dataset[i].item = 0
	dataset[i].rating = 0
  • 1
  • 2
  • 3
  • 4

3 对象数组作为参数(针对问题2)

#参数可以不指定类型

def function1(param = None):
	for i in range(20):
		param[i].user = 0
		param[i].item = 0
		param[i].rating = 0
  • 1
  • 2
  • 3
  • 4
  • 5

因为python是动态类型,所以在编写代码的时候并不会提示。