#!/usr/bin/python3 class Student(object): @property #相当于获取数据方法 def birth(self): return self._birth @birth.setter def birth(self,value): self._birth = value @property def age(self): return 2015 - self._birth s=Student() s.birth=60 #dd=s.birth(60) print(s.birth) print(s.age) 能不能优化代码
时间: 2024-03-17 12:43:33 浏览: 73
可以将代码优化如下:
```
class Student(object):
def __init__(self, birth):
self._birth = birth
@property
def birth(self):
return self._birth
@birth.setter
def birth(self, value):
self._birth = value
@property
def age(self):
return 2015 - self._birth
s = Student(60)
print(s.birth)
print(s.age)
```
优化后的代码中,在类的构造函数中初始化了学生的出生年份,避免了在使用 `birth` 属性时需要先赋值的麻烦。同时,为了避免与 `birth` 属性重名,可以将类的构造函数参数名与 `birth` 属性名不同命名。
阅读全文