繁体   English   中英

向类属性添加整数

[英]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().year
使用此import date from datetime
current_year=date.today().year
减去当前年份到出生年份
import 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM