Atributo de clase: los atributos de clase son únicos para cada clase. Cada instancia de la clase tendrá este atributo.
Ejemplo:
Python3
# declare a class class Employee: # class attribute count = 0 # define a method def increase(self): Employee.count += 1 # create an Employee # class object a1 = Employee() # calling object's method a1.increase() # print value of class attribute print(a1.count) a2 = Employee() a2.increase() print(a2.count) print(Employee.count)
Producción:
1 2 2
En el ejemplo anterior, la variable de conteo es un atributo de clase.
Atributo de instancia: los atributos de instancia son únicos para cada instancia (una instancia es otro nombre para un objeto). Cada objeto/instancia tiene su propio atributo y se puede cambiar sin afectar a otras instancias.
Ejemplo:
Python3
# create a class class Employee: # constructor def __init__(self): # instance attribute self.name = 'Gfg' self.salary = 4000 # define a method def show(self): print(self.name) print(self.salary) # create an object of # Employee class x = Employee() # method calling x.show()
Producción:
Gfg 4000
Ahora, veamos un ejemplo de propiedades:
1) Crear propiedades de una clase usando la función property() :
Sintaxis: propiedad (fget, fset, fdel, doc)
Ejemplo:
Python3
# create a class class gfg: # constructor def __init__(self, value): self._value = value # getting the values def getter(self): print('Getting value') return self._value # setting the values def setter(self, value): print('Setting value to ' + value) self._value = value # deleting the values def deleter(self): print('Deleting value') del self._value # create a properties value = property(getter, setter, deleter, ) # create a gfg class object x = gfg('Happy Coding!') print(x.value) x.value = 'Hey Coder!' # deleting the value del x.value
Producción:
Getting value Happy Coding! Setting value to Hey Coder! Deleting value
2) Crear propiedades de una clase usando el decorador @property :
Podemos aplicar la función de propiedad usando el decorador @property. Este es uno de los decoradores integrados. Un decorador es simplemente una función que toma otra función como argumento y la agrega a su comportamiento envolviéndola.
Ejemplo:
Python3
# create a class class byDeco: # constructor def __init__(self, value): self._value = value # getting the values @property def value(self): print('Getting value') return self._value # setting the values @value.setter def value(self, value): print('Setting value to ' + value) self._value = value # deleting the values @value.deleter def value(self): print('Deleting value') del self._value # create an object of class x = byDeco('happy Coding') print(x.value) x.value = 'Hey Coder!' # deleting the value del x.value
Producción:
Getting value happy Coding Setting value to Hey Coder! Deleting value
Tabla de diferencia entre Atributo V/s Propiedad
Atributo |
Propiedad |
---|---|
Los atributos se describen mediante variables de datos, por ejemplo, como nombre, edad, altura, etc. | Las propiedades son un tipo especial de atributos. |
Dos tipos de atributos:
|
Tiene métodos getter, setter y delete como los métodos __get__, __set__ y __delete__. |
Los atributos de clase se definen en las partes del cuerpo de la clase, normalmente en la parte superior. | Podemos definir métodos getters, setters y delete con la función property() . |
Los atributos de instancia se definen en el cuerpo de la clase usando la palabra clave self , generalmente en el método __init__() . | Si solo queremos la propiedad de lectura, también hay un decorador @property que puede agregar sobre su método. |
Publicación traducida automáticamente
Artículo escrito por mayanktyagi1709 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA