[英]Add an integer to a class atribute
我有一个简单的类,具有3个姓氏和出生年份的属性,当我定义该类的对象时,我不希望获得该人的年龄,而是接收其出生年份。
class Person:
def __init__(self,Fname,Lname,Byear):
self.firtsName = Fname
self.lastName = Lname
self.birth_year = Byear
def __str__(self):
return '{}, {} Age:{}'.format(self.firtsName,self.lastName,self.birth_year)
p1=Person('Olivia','Parker','1985')
print(p1)
我想import date from datetime
使用此
current_year=date.today().yearimport date from datetime
减去当前年份到出生年份
current_year=date.today().yearimport date from datetime
current_year=date.today().year
你要财产吗?
from datetime import date
class Person:
def __init__(self, fname, lname, byear):
self.first_name = fname
self.last_name = lname
self.birth_year = byear
@property
def age(self):
return date.today().year - self.birth_year
def __str__(self):
return '{0.first_name}, {0.last_name} Age:{0.age}'.format(self)
p1 = Person('Olivia', 'Parker', 1985)
print(p1)
版画
Olivia, Parker Age:28
顺便说一句,该代码混合使用lower_case_with_underscores
,为属性使用mixedCase
。 选一个。 请参阅PEP 8-Python代码样式指南-描述性:命名样式 。
我认为这是您想要做的:
>>> class Person:
... def __init__(self,Fname,Lname,Byear):
... self.firtsName = Fname
... self.lastName = Lname
... self.birth_year = Byear
... def __str__(self):
... return "%s, %s Age: %s" %(self.lastName, self.firtsName, (datetime.datetime.now().year-self.birth_year))
...
>>> p1=Person('Olivia','Parker',1985)
>>> print(p1)
Parker, Olivia Age: 28
不过请记住,这不会考虑到某些细微差别,例如“现在是2014年1月,并且出生于1985年10月)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.