如何在Python中访问和打印整个类变量?
我只是在学习python中的类,理解它们有点困难。我有一段代码,可以将CSV文件读入类中。文件中的一些类名的一个例子是年龄、教育程度、性别、工资等。我希望能够访问和打印年龄变量中的所有内容。我知道我可以使用如何在Python中访问和打印整个类变量?,python,csv,class,Python,Csv,Class,我只是在学习python中的类,理解它们有点困难。我有一段代码,可以将CSV文件读入类中。文件中的一些类名的一个例子是年龄、教育程度、性别、工资等。我希望能够访问和打印年龄变量中的所有内容。我知道我可以使用print(instances[1].Age)打印特定元素,但列表中有许多元素,我希望能够访问所有元素。我认为for循环可以工作,但我不确定如何编写它 class File: def __init__(self, row, header): self.__dict__
print(instances[1].Age)
打印特定元素,但列表中有许多元素,我希望能够访问所有元素。我认为for循环可以工作,但我不确定如何编写它
class File:
def __init__(self, row, header):
self.__dict__ = dict(zip(header, row))
data = list(csv.reader(open('data_file.csv')))
instances = [File(i, data[0]) for i in data[1:]]
这就是我必须将CSV文件读入类中的内容,从这里我无法访问变量。dir()
将列出模块的所有内容
class B:
x = 5
def __init__(self):
print("hello")
def method(self):
print("world")
b = B();
print(dir(B))
objectMethods = [] #stores methods
objectMemberVars = [] #stores member variables as tuples (name,value)
for attr in dir(b):
if callable(getattr(b,attr)):
objectMethods.append(getattr(b,attr))
else:
objectMemberVars.append((attr,getattr(b,attr)))
print(objectMethods)
print(objectMemberVars)
print(objectMethods[1])
输出:
hello
['__doc__', '__init__', '__module__', 'method', 'x']
[<bound method B.__init__ of <__main__.B instance at 0x7fc3afa41320>>, <bound method B.method of <__main__.B instance at 0x7fc3afa41320>>]
[('__doc__', None), ('__module__', '__main__'), ('x', 5)]
<bound method B.method of <__main__.B instance at 0x7fc3afa41320>>
你好
[''文档'''.'初始化'.'','.'模块'.'','方法'.'',x']
[, ]
[(“文件”,无),(“模块”,“主模块”,“x”,5)]
可以对类定义和实例执行此操作。不同之处在于类定义的方法表示为unbound
,而实例的方法表示为bound
我引用了这篇文章:
dir()
将列出模块的所有内容
class B:
x = 5
def __init__(self):
print("hello")
def method(self):
print("world")
b = B();
print(dir(B))
objectMethods = [] #stores methods
objectMemberVars = [] #stores member variables as tuples (name,value)
for attr in dir(b):
if callable(getattr(b,attr)):
objectMethods.append(getattr(b,attr))
else:
objectMemberVars.append((attr,getattr(b,attr)))
print(objectMethods)
print(objectMemberVars)
print(objectMethods[1])
输出:
hello
['__doc__', '__init__', '__module__', 'method', 'x']
[<bound method B.__init__ of <__main__.B instance at 0x7fc3afa41320>>, <bound method B.method of <__main__.B instance at 0x7fc3afa41320>>]
[('__doc__', None), ('__module__', '__main__'), ('x', 5)]
<bound method B.method of <__main__.B instance at 0x7fc3afa41320>>
你好
[''文档'''.'初始化'.'','.'模块'.'','方法'.'',x']
[, ]
[(“文件”,无),(“模块”,“主模块”,“x”,5)]
可以对类定义和实例执行此操作。不同之处在于类定义的方法表示为unbound
,而实例的方法表示为bound
我引用了这篇文章:
我是根据下面的csv文件示例来回答这个问题的 标题、姓名、日期、年龄、反馈 伟大的客户服务,John,2017-12-21,25,这里的客户服务是 很好。他们帮我找到了一辆2017年的凯美瑞,车况良好 价格合理。与其他经销商相比,他们提供的价格最低 价格。绝对推荐 因为您不必使用类,所以使用列表来完成工作要容易得多
import csv
with open('C:/Users/user/Desktop/folder/log.csv') as f:
data = []
reader = csv.DictReader(f)
for rows in reader:
data.append(rows)
for row in data:
print(row['age'])
输出
25我是根据下面的csv文件示例来回答这个问题的 标题、姓名、日期、年龄、反馈 伟大的客户服务,John,2017-12-21,25,这里的客户服务是 很好。他们帮我找到了一辆2017年的凯美瑞,车况良好 价格合理。与其他经销商相比,他们提供的价格最低 价格。绝对推荐 因为您不必使用类,所以使用列表来完成工作要容易得多
import csv
with open('C:/Users/user/Desktop/folder/log.csv') as f:
data = []
reader = csv.DictReader(f)
for rows in reader:
data.append(rows)
for row in data:
print(row['age'])
输出
25您是否被要求在本次挑战中使用课堂?因为它将更容易与开放和for循环一起使用。我可以与开放一起使用,但有人说使用类是首选。我已经成功地使用了with open方法,但我仍然对其他方法持开放态度。你被要求在这次挑战中使用课堂吗?因为它将更容易与开放和for循环一起使用。我可以与开放一起使用,但有人说使用类是首选。我已经设法使用with open方法使其工作,但我仍然对其他方法的想法持开放态度。