python - 如何使用 print 在 python 中显示类实例
问题描述
我正在尝试打印一个类的实例,但是我得到的结果似乎格式正确,但不是我正在寻找的输出。
我已经按照某人的建议使用了 def str (self),但我仍然得到相同的结果
这是整个代码:
class Employee:
empCount = 0
def __init__(self,name,salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def __str__(self):
print (self.name)
def displayCount(self):
print("Total Employee %d" % Employee.empCount)
def displayEmployee(self):
print ("Name : ", self.name, ", Salary: ",self.salary)
global emp1
global emp2
global n
global s
emp1 = ''
emp2 = ''
alist = [emp1,emp2]
alist_final =[]
for y in alist:
y = Employee('n',2)
alist_final.append(y)
y.displayEmployee()
print("Total Employee %d" % Employee.empCount)
print(alist_final)
这是我在命令行上得到的结果:
C:\Users\Demi\Desktop\virtuallearner>pr.py
z
2
Name : z , Salary: 2
Total Employee 1
m
5
Name : m , Salary: 5
Total Employee 2
[<__main__.Employee object at 0x0000022AFA278550>, <__main__.Employee object
at 0x0000022AFA278550>]
我正在尝试使用 for 循环中所做的更改打印出实例
解决方案
您可以使用 __repr__ 方法,而不是使用__str__方法。使用此方法,您无需将实例显式转换为字符串。找到代码:
class Employee:
empCount = 0
def __init__(self,name,salary):
self.name = name
self.salary = salary
Employee.empCount += 1
def __repr__(self):
return self.name
def displayCount(self):
print("Total Employee %d" % Employee.empCount)
def displayEmployee(self):
print ("Name : ", self.name, ", Salary: ",self.salary)
global emp1
global emp2
global n
global s
emp1 = ''
emp2 = ''
alist = [emp1,emp2]
alist_final =[]
for y in alist:
y = Employee('n',2)
alist_final.append(y)
y.displayEmployee()
print("Total Employee %d" % Employee.empCount)
print(alist_final)
输出如下:
Name : n , Salary: 2
Total Employee 1
Name : n , Salary: 2
Total Employee 2
[n, n]
希望这可以帮助!
推荐阅读
- html - 使用 Reactjs 访问远程 html 文件
- octobercms - 将复选框值保存到数据库 [ octobercms ]
- android - Apk 大小与下载大小
- angular - 如何在 Angular 2 中使用 murri 作为指令
- sql - SQL 中的连接
- json - json4s,“尝试合并时没有从案例类列表到 JValue 的隐式视图”
- tensorflow - 为什么nvidia-smi GPU虽然不用,但性能却很低
- android - 如何在 Android 中执行中间人攻击?
- node.js - Push Notication Fcm 云函数,Mismatch SenderId 错误 Nodejs
- reactjs - 在 React 中的 For 循环中求和数字