定义一个person类,在类中定义age和name属性并对age封装,通过类的对象访问age
时间: 2024-05-06 18:21:27 浏览: 22
可以这样定义一个Person类:
```
class Person:
def __init__(self, name, age):
self.name = name
self._age = age
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if isinstance(value, int):
self._age = value
else:
raise ValueError("Age must be an integer")
```
在上述代码中,我们使用了@property和@age.setter来封装age属性,这样可以利用类的对象来访问age属性。例如,如果我们要创建一个名为Tom的Person对象,可以这样做:
```
Tom = Person("Tom", 20)
```
然后通过调用Tom.age来访问age属性:
```
print(Tom.age) # 输出20
```
如果我们想要修改Tom的年龄,我们可以这样做:
```
Tom.age = 21
```
这会自动调用我们定义的setter方法,将Tom的_age属性更新为21。
相关问题
声明一个person类,私有化属性name和age,并将字段封装起来
OK,我知道了。下面是声明一个person类,私有化属性name和age,并将字段封装起来的代码示例:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
在这个示例代码中,我们定义了一个名为Person的类,它有两个私有属性name和age,这两个属性都被封装起来,外部无法直接访问。我们提供了两个public方法getName()和getAge(),这两个方法可以用来获取name和age属性的值。在Person类的构造方法中,我们需要传递name和age作为参数来初始化对象的属性。
声名一个person类,私有化属性name和age,并将字段封装起来
可以这样写:
```python
class Person:
def __init__(self, name, age):
self.__name = name
self.__age = age
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
```
这样定义的类中,name和age属性被私有化,只能通过get_name,get_age,set_name,set_age等方法访问或修改属性的值,保证了数据的安全性。