编写个人信息类的实例方法,类方法静态方法
时间: 2024-04-05 12:35:23 浏览: 17
好的,下面是一个Python代码示例,实现了一个名为 PersonalInfo 的个人信息类,并添加了一个实例方法(introduction)、一个类方法(get_average_age)和一个静态方法(is_adult):
```python
class PersonalInfo:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def introduction(self):
print("大家好,我叫{},今年{}岁,是个{}。".format(self.name, self.age, self.gender))
@classmethod
def get_average_age(cls, person_list):
total_age = sum([p.age for p in person_list])
return total_age / len(person_list)
@staticmethod
def is_adult(age):
return age >= 18
p1 = PersonalInfo("张三", 25, "男")
p2 = PersonalInfo("李四", 30, "女")
p3 = PersonalInfo("王五", 20, "男")
p1.introduction()
p2.introduction()
p3.introduction()
person_list = [p1, p2, p3]
avg_age = PersonalInfo.get_average_age(person_list)
print("平均年龄:", avg_age)
print("是否成年:", PersonalInfo.is_adult(p1.age))
print("是否成年:", PersonalInfo.is_adult(p2.age))
print("是否成年:", PersonalInfo.is_adult(p3.age))
```
输出结果为:
```
大家好,我叫张三,今年25岁,是个男。
大家好,我叫李四,今年30岁,是个女。
大家好,我叫王五,今年20岁,是个男。
平均年龄: 25.0
是否成年: True
是否成年: True
是否成年: True
```
在以上代码中:
- `introduction` 是一个实例方法,通过 `self` 参数来访问对象的属性。
- `get_average_age` 是一个类方法,使用 `@classmethod` 装饰器定义,通过 `cls` 参数来访问类的属性和方法。
- `is_adult` 是一个静态方法,使用 `@staticmethod` 装饰器定义,不需要访问类或对象的属性和方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)