java中的 private 的私有属性,Python用"__变量名" 的方式,这样实例就无法访问到这个属性了
class Date:
def __init__(self,year,month,day):
self.year = year
self.month = month
self.day = day
def __str__(self):
return "{year}/{month}/{day}".format(year=self.year, month=self.month, day=self.day)
class User:
def __init__(self,birth):
self.__birth = birth
def get_age(self):
return 2018-self.__birth.year
user = User(Date(1995,12,2))
print(user.get_age())
print(user._User__birth)
23
1995/12/2
其实Python把私有变量__birth变成了 _classname__birth变量
网友评论