Todos los objetos comparten clase o variables estáticas. Una instancia o variables no estáticas son diferentes para diferentes objetos (cada objeto tiene una copia). Por ejemplo, deje que un estudiante de ciencias de la computación esté representado por la clase CSStudent . La clase puede tener una variable estática cuyo valor sea “cse” para todos los objetos. Y la clase también puede tener miembros no estáticos como name y roll . En C++ y Java , podemos usar palabras clave estáticas para convertir una variable en una variable de clase. Las variables que no tienen una palabra clave estática anterior son variables de instancia. Vea esto para el ejemplo de Java y esto para el ejemplo de C++.
el pythonel enfoque es simple; no requiere una palabra clave estática.
Todas las variables a las que se les asigna un valor en la declaración de clase son variables de clase. Y las variables a las que se les asignan valores dentro de los métodos son variables de instancia.
Python
# Python program to show that the variables with a value # assigned in class declaration, are class variables # Class for Computer Science Student class CSStudent: stream = 'cse' # Class Variable def __init__(self,name,roll): self.name = name # Instance Variable self.roll = roll # Instance Variable # Objects of CSStudent class a = CSStudent('Geek', 1) b = CSStudent('Nerd', 2) print(a.stream) # prints "cse" print(b.stream) # prints "cse" print(a.name) # prints "Geek" print(b.name) # prints "Nerd" print(a.roll) # prints "1" print(b.roll) # prints "2" # Class variables can be accessed using class # name also print(CSStudent.stream) # prints "cse" # Now if we change the stream for just a it won't be changed for b a.stream = 'ece' print(a.stream) # prints 'ece' print(b.stream) # prints 'cse' # To change the stream for all instances of the class we can change it # directly from the class CSStudent.stream = 'mech' print(a.stream) # prints 'ece' print(b.stream) # prints 'mech'
Producción:
cse cse Geek Nerd 1 2 cse ece cse ece mech
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