Python | 在类中实现Getter和Setter的示例

In this program, we are implementing Getters and Setters. Getters are used to access data members so they are also called accessors and Setters are used to change the data memebers values so they are called Mutators.

在此程序中,我们正在实现Getters和SettersGetter用于访问数据成员,因此也称为访问器Setter用于更改数据成员的值,因此称为Mutators

Program:

程序:

class Employee:
    def __init__(self): #Constructor
        self.__id = 0
        self.__name = ""
        self.__gender = ""
        self.__city = ""
        self.__salary = 0

    def getId(self):         #Accessor/Getters
        return self.__id
    def setId(self,id):      #Mutators/Setters
        self.__id=id

    def getName(self):
        return self.__name
    def setName(self,name):
        self.__name=name

    def getGender(self):
        return self.__gender
    def setGender(self,gender):
        self.__gender=gender

    def getCity(self):
        return self.__city
    def setCity(self,city):
        self.__city=city

    def getSalary(self):
        return self.__salary
    def setSalary(self,salary):
        self.__salary=salary

def main():
    print("Enter Employee Data:")
    id = int(input("Enter Id\t:"))
    name = input("Enter Name\t:")
    gender = input("Enter Gender:")
    city = input("Enter City\t:")
    salary = int(input("Enter Salary:"))

    e=Employee()
    e.setId(id)
    e.setName(name)
    e.setGender(gender)
    e.setCity(city)
    e.setSalary(salary)
    id2 = e.getId()
    name2 = e.getName()
    gender2 = e.getGender()
    city2 = e.getCity()
    salary2 = e.getSalary()


    print("\nDisplaying Employee Data:")
    print("Id\t\t:", id2)
    print("Name\t:", name2)
    print("Gender\t:", gender2)
    print("City\t:", city2)
    print("Salary\t:", salary2)


if __name__=="__main__":
    main()

Output

输出量

Enter Employee Data:
Enter Id        :101
Enter Name      :Pankaj
Enter Gender:Male
Enter City      :Delhi
Enter Salary:70000

Displaying Employee Data:
Id              : 101
Name    : Pankaj
Gender  : Male
City    : Delhi
Salary  : 70000


翻译自: https://www.includehelp.com/python/implement-getters-and-setters-in-a-class.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`@property` 可以用来将一个方法转换为只读属性,在定义 `@property` 装饰器时,可以像调用属性一样访问这个方法,而无需使用括号调用方法。下面是一个示例: ```python class Circle: def __init__(self, radius): self._radius = radius @property def radius(self): return self._radius @property def diameter(self): return self._radius * 2 @property def area(self): return 3.14 * (self._radius ** 2) ``` 在上面的示例,`@property` 装饰器用于将 `radius`、`diameter` 和 `area` 方法转换为只读属性。现在可以像访问属性一样访问这些方法: ```python c = Circle(5) print(c.radius) # 5 print(c.diameter) # 10 print(c.area) # 78.5 ``` 除了只读属性外,还可以使用 `@属性名.setter` 装饰器来定义可写属性,这些可写属性允许我们修改定义的属性。下面是一个示例: ```python class Rectangle: def __init__(self, width, height): self._width = width self._height = height @property def width(self): return self._width @width.setter def width(self, value): self._width = value @property def height(self): return self._height @height.setter def height(self, value): self._height = value @property def area(self): return self._width * self._height ``` 在上面的示例,`@width.setter` 和 `@height.setter` 装饰器用于定义可写属性 `width` 和 `height`,这些属性可以用于修改定义的 `_width` 和 `_height` 属性。现在我们可以像修改属性一样修改它们: ```python r = Rectangle(5, 3) print(r.area) # 15 r.width = 7 print(r.area) # 21 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值