自己任意定义一个类(不能跟教程相同),要有类对象、构造函数__init__,析构函数,私有属性,读取或者设置私有属性的方法、@property属性(有读和写的功能)等
时间: 2024-05-13 10:19:17 浏览: 66
以下是一个示例,定义了一个名为Person的类:
```python
class Person:
def __init__(self, name, age):
self.__name = name
self.__age = age
def __del__(self):
print("Person object deleted!")
def get_name(self):
return self.__name
def get_age(self):
return self.__age
def set_name(self, name):
self.__name = name
def set_age(self, age):
self.__age = age
@property
def info(self):
return f"{self.__name} is {self.__age} years old."
```
这个类有两个私有属性:`__name`和`__age`,分别用于存储人的姓名和年龄。构造函数`__init__`用于创建对象时初始化姓名和年龄属性。析构函数`__del__`在对象销毁时被调用,这里只是简单地打印一条消息。
`get_name`和`get_age`方法用于获取私有属性值,`set_name`和`set_age`方法用于设置私有属性值。`@property`装饰器用于定义一个名为`info`的属性,它可以读取对象的姓名和年龄,返回一个字符串形式的信息。由于`@property`装饰器本身只定义了读取功能,所以我们还需要定义一个`set_info`方法来实现写入功能。
以下是使用这个类的示例代码:
```python
# 创建两个Person对象
p1 = Person("Alice", 21)
p2 = Person("Bob", 25)
# 读取私有属性值
print(p1.get_name()) # Alice
print(p1.get_age()) # 21
# 设置私有属性值
p1.set_name("Alex")
p1.set_age(22)
print(p1.info) # Alex is 22 years old.
# 删除对象
del p1
del p2
```
输出:
```
Alice
21
Alex is 22 years old.
Person object deleted!
Person object deleted!
```
阅读全文