python - 如何在python中使用print显示类实例

标签 python class for-loop instance-variables

我正在尝试打印类的实例,但是我得到的结果似乎格式正确,但不是我正在寻找的输出。

我按照某人的推荐使用了 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]

希望这有帮助!

关于python - 如何在python中使用print显示类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58098116/

相关文章:

python - 在 strip 结帐 session 中传递产品 ID

python - 使用 Python 3.6.2 连接到 IBM Bluemix 上的 MongoDB

python - 如何将字节数组的内容复制到列表 (Python)?

python - 实现特定于类的方法但不直接使用属性的最佳方式

Python:循环到两个列表中较短的一个

java - 循环模式

python - 将文件压缩到内存并将整个存档作为字节读取

C++ 函数的错误信息重定义

Python 如何扩展 `str` 并重载其构造函数?

java - 如何将多个文本文件中的字符串添加到数组中