ZCJ*_*ZCJ 2 python class function list
我正在尝试打印这个类中的函数创建的列表 - 我需要修复什么?我从终端获得输出[<__main__.Person instance at 0x1004a0320>,.
class Person:
def __init__(self,first,last,id,email):
self.firstName=first
self.lastName=last
self.id=id
self.email=email
self.friends=[]
def add_friend(self,friend):
if len(self.friends)<5:
self.friends.append(friend)
if len(friend.friends)<5:
friend.friends.append(self)
p1=Person("David","Waver","922-43-9873","dwaver@wsu.edu")
p2=Person("Bob","Jones","902-38-9973","bjones@odu.edu")
p3=Person("James","Smith","302-38-9103","jonsdfes@ou.edu")
p4=Person("Tim","Jack","902-38-0918","remmy@usc.edu")
p5=Person("Jim","Johnston","314-78-2343","jjohnston@fsu.edu")
p6=Person("Gina","Relent","102-38-1064","ginar@wvu.edu")
p7=Person("Greg","Morris","932-38-4473","jones@ttu.edu")
p1.add_friend(p2)
p1.add_friend(p3)
p1.add_friend(p4)
p1.add_friend(p5)
p1.add_friend(p6)
p1.add_friend(p7)
print p1.friends
Run Code Online (Sandbox Code Playgroud)
您需要定义__repr__或__str__在您的Person班级.
>>> class Person:
... def __init__(self,first,last,id,email):
... self.firstName=first
... self.lastName=last
... self.id=id
... self.email=email
... self.friends=[]
... def add_friend(self,friend):
... if len(self.friends)<5:
... self.friends.append(friend)
... if len(friend.friends)<5:
... friend.friends.append(self)
... def __repr__(self):
... return self.firstName + ' ' + self.lastName
Run Code Online (Sandbox Code Playgroud)
然后如上所述初始化列表......
>>> print p1.friends
[Bob Jones, James Smith, Tim Jack, Jim Johnston, Gina Relent]
Run Code Online (Sandbox Code Playgroud)
这个答案很好地解释了这些功能.
鉴于上述情况后的点左右的功能__repr__和__str__,大概__repr__应该看起来更像是这样的:
def __repr__(self):
template = "Person('{0}', '{1}', '{2}', '{3}')"
return template.format(self.firstName, self.lastName, self.id, self.email)
Run Code Online (Sandbox Code Playgroud)
什么是很好对上述的是,它产生一个字符串,评价时,(除了创建具有相同的属性的对象friends)作为原始.例如:
>>> print p1
Person('David', 'Waver', '922-43-9873', 'dwaver@wsu.edu')
>>> Person('David', 'Waver', '922-43-9873', 'dwaver@wsu.edu')
Person('David', 'Waver', '922-43-9873', 'dwaver@wsu.edu')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1045 次 |
| 最近记录: |