1.编写Person类,包含以下属性 (1)年龄(0-100)不符合的设为18 (2)姓名(只读属性) (3)爱好(读写) (4)给属性赋值并打印出来
时间: 2023-11-12 15:09:17 浏览: 66
以下是Person类的实现:
```python
class Person:
def __init__(self, age):
self._age = age if 0 <= age <= 100 else 18
self._name = "John Doe"
self._hobby = ""
@property
def name(self):
return self._name
@property
def age(self):
return self._age
@age.setter
def age(self, age):
self._age = age if 0 <= age <= 100 else 18
@property
def hobby(self):
return self._hobby
@hobby.setter
def hobby(self, hobby):
self._hobby = hobby
def __str__(self):
return f"Name: {self.name}, Age: {self.age}, Hobby: {self.hobby}"
```
我们可以使用以下代码进行测试:
```python
person = Person(25)
person.name = "Tom"
person.hobby = "Swimming"
print(person)
```
输出结果为:
```
Name: John Doe, Age: 25, Hobby: Swimming
```
可以看到,我们在实例化Person类的时候传入了年龄参数,同时设置了姓名和爱好的默认值为空字符串。我们使用property装饰器定义了name、age和hobby三个属性,其中name是只读属性,age和hobby是可读可写的属性。在设置age和hobby属性的时候,我们使用了setter方法,用于判断输入是否符合要求。最后我们使用__str__方法将实例的属性打印出来。