Requisitos previos: clases y objetos de Python
Una clase es un proyecto o prototipo definido por el usuario a partir del cual se crean objetos. Las clases proporcionan un medio para agrupar datos y funcionalidad. La creación de una nueva clase crea un nuevo tipo de objeto, lo que permite crear nuevas instancias de ese tipo. Para ponerlo en palabras simples, supongamos una clase Estudiante , un estudiante puede tener muchas propiedades como Nombre, Curso, ID del estudiante, etc. Ahora supongamos que tenemos una Estudiante llamada Anita que está cursando un MBA, Anita es un objeto de clase. Alumno.
Ejemplo:
class student: def __init__(self, name, course): self.name = name self.course = course def studentid(self): return "student's identification number is \ {}{}".format(self.name, self.course) student1 = student("Anita", "MBA") print(student1.studentid())
Producción:
student's identification number is AnitaMBA
Ahora, queremos acceder a la identificación del estudiante como una propiedad y no como un método. Para esto, todo lo que se requiere es agregar el decorador @property antes del método.
Ejemplo:
class student: def __init__(self, name, course): self.name = name self.course = course @property def studentid(self): return "student's identification number is \ {}{}".format(self.name, self.course) student1 = student("Anita", "MBA") print(student1.studentid)
Producción:
student's identification number is AnitaMBA
Una propiedad de solo lectura es un decorador de propiedades sin setter. La identificación del estudiante aquí es una propiedad de solo lectura ya que no tiene un setter. En términos generales, significa que el valor no es modificable. Para entender, tomemos un ejemplo más:
Ejemplo:
class employee: def __init__(self, basesalary, yearsofworking): self.basesalary = basesalary self.yearsofworking = yearsofworking @property def salary(self): self.salary = 50000 amit = employee(20000, 5) amit.salary = 10000 print(amit.basesalary, amit.yearsworking, amit.salary)
Producción:
Rastreo (última llamada más reciente):
Archivo “/home/e029e0b9ccad85905e22dd5a91943897.py”, línea 14, en
amit.salary = 10000
AttributeError: no se puede establecer el atributo
Para arreglar esto, se debe agregar un setter en este código. Después de hacer esto, ya no será una propiedad de solo lectura.
Ejemplo:
class employee: def __init__(self, basesalary, yearsofworking): self.basesalary = basesalary self.yearsofworking = yearsofworking self._salary = 0 @property def salary(self): return self._salary @salary.setter def salary(self, salary): self._salary = salary amit = employee(20000, 5) amit.salary = 10000 print(amit.basesalary, amit.yearsofworking, amit.salary)
Producción:
20000 5 10000
Publicación traducida automáticamente
Artículo escrito por jnikita356 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA