定义Person类,包括两个私有数据成员__name和__age,在构造函数中将其初始化为指定值,__age的默认值是0。为这两个数据成员编写读写属性,并测试代码是否能够正常运行
时间: 2023-09-21 21:06:16 浏览: 403
### 回答1:
以下是Person类的定义和测试代码:
```python
class Person:
def __init__(self, name, age=0):
self.__name = name
self.__age = age
@property
def name(self):
return self.__name
@name.setter
def name(self, value):
self.__name = value
@property
def age(self):
return self.__age
@age.setter
def age(self, value):
self.__age = value
# 测试代码
p = Person("张三", 18)
print(p.name, p.age) # 输出:张三 18
p.name = "李四"
p.age = 20
print(p.name, p.age) # 输出:李四 20
```
测试结果表明,代码能够正常运行。
### 回答2:
定义一个Person类,包括私有数据成员__name和__age。构造函数中将__name和__age初始化为指定值,其中__age的默认值是0。为__name和__age编写读写属性,并测试代码是否正常运行。
```python
class Person:
def __init__(self, name, age=0):
self.__name = name
self.__age = age
# 读取 __name 属性
def get_name(self):
return self.__name
# 设置 __name 属性
def set_name(self, name):
self.__name = name
# 读取 __age 属性
def get_age(self):
return self.__age
# 设置 __age 属性
def set_age(self, age):
self.__age = age
# 测试代码
person = Person("张三", 25)
print(person.get_name()) # 输出:张三
print(person.get_age()) # 输出:25
person.set_name("李四")
person.set_age(30)
print(person.get_name()) # 输出:李四
print(person.get_age()) # 输出:30
```
代码会创建一个Person对象,并将其初始化为指定的值。然后使用读取属性方法(即get_name和get_age方法)来获取__name和__age的值。接下来,使用设置属性方法(即set_name和set_age方法)来修改__name和__age的值。在每次修改之后,我们再次使用读取属性方法来验证属性值是否被正确修改。最后,代码输出结果张三、25、李四和30。
### 回答3:
Person类是一个拥有私有数据成员__name和__age的类。在构造函数中,会根据指定的值将__name和__age进行初始化。__age有一个默认值为0。为了可以操作和读取这两个私有数据成员,我给他们编写了读写属性。
读属性的定义如下:
```python
@property
def name(self):
return self.__name
@property
def age(self):
return self.__age
```
这样,在外部就可以通过类的实例名.属性名的方式来读取__name和__age的值。
写属性的定义如下:
```python
@name.setter
def name(self, value):
self.__name = value
@age.setter
def age(self, value):
self.__age = value
```
这样,在外部就可以通过类的实例名.属性名 = 值的方式来对__name和__age的值进行赋值。
下面是测试代码:
```python
# 创建一个Person实例
person = Person()
# 使用读属性获取私有数据成员__name和__age的值
print(person.name) # 输出: None
print(person.age) # 输出: 0
# 使用写属性为私有数据成员__name和__age赋值
person.name = "Tom"
person.age = 18
# 再次使用读属性获取私有数据成员__name和__age的值
print(person.name) # 输出: Tom
print(person.age) # 输出: 18
```
经过测试,代码可以正常运行。
阅读全文