Atributos de clase e instancia en Python

Atributos de clase

Los atributos de clase pertenecen a la clase misma y serán compartidos por todas las instancias. Dichos atributos se definen en las partes del cuerpo de la clase, generalmente en la parte superior, para facilitar la legibilidad.

# Write Python code here
class sampleclass:
    count = 0     # class attribute
  
    def increase(self):
        sampleclass.count += 1
  
# Calling increase() on an object
s1 = sampleclass()
s1.increase()        
print(s1.count)
  
# Calling increase on one more
# object
s2 = sampleclass()
s2.increase()
print(s2.count)
  
print(sampleclass.count)

Producción:

1              
2                           
2

Atributos de instancia

A diferencia de los atributos de clase, los objetos no comparten los atributos de instancia. Cada objeto tiene su propia copia del atributo de instancia (en el caso de los atributos de clase, todos los objetos se refieren a una sola copia).

Para enumerar los atributos de una instancia/objeto, tenemos dos funciones:
1. vars() : esta función muestra el atributo de una instancia en forma de diccionario.
2. dir() : esta función muestra más atributos que la función vars, ya que no se limita a la instancia. También muestra los atributos de clase. También muestra los atributos de sus clases antecesoras.

# Python program to demonstrate
# instance attributes.
class emp:
    def __init__(self):
        self.name = 'xyz'
        self.salary = 4000
  
    def show(self):
        print(self.name)
        print(self.salary)
  
e1 = emp()
print("Dictionary form :", vars(e1))
print(dir(e1))

Producción :

Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']

Este artículo es una contribución de Harsh Valecha . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *