Рубрики

Изменение членов класса в Python

В предыдущем факте мы видели, что у Python нет статического ключевого слова. Все переменные, которым присвоено значение в объявлении класса, являются переменными класса

Мы должны быть осторожны при изменении значения переменной класса . Если мы пытаемся изменить переменную класса с помощью объекта, создается новая экземплярная (или нестатическая) переменная для этого конкретного объекта, и эта переменная затеняет переменные класса. Ниже приведена программа Python, демонстрирующая то же самое.

# Класс для студентов по информатике

class CSStudent:

    stream = 'cse'     # Переменная класса

    def __init__(self, name, roll):

        self.name = name 

        self.roll = roll

  
# Драйвер программы для проверки работоспособности
# Создание объектов класса CSStudent

a = CSStudent("Geek", 1)

b = CSStudent("Nerd", 2)

  

print "Initially"

print "a.stream =", a.stream

print "b.stream =", b.stream 

  
# Эта вещь не меняет классовую (статическую) переменную
# Вместо этого создает переменную экземпляра для объекта
# 'a', который скрывает члена класса.

a.stream = "ece"

  

print "\nAfter changing a.stream"

print "a.stream =", a.stream

print "b.stream =", b.stream

Выход:

Initially
a.stream = cse
b.stream = cse

After changing a.stream
a.stream = ece
b.stream = cse

Мы должны изменить переменные класса, используя только имя класса.

# Program to show how to make changes to the
# class variable in Python

  
# Class for Computer Science Student

class CSStudent:

    stream = 'cse'     # Class Variable 

    def __init__(self, name, roll):

        self.name = name 

        self.roll = roll

  
# New object for further implementation

a = CSStudent("check", 3)

print "a.tream =", a.stream

  
# Correct way to change the value of class variable

CSStudent.stream = "mec"

print "\nClass variable changes to mec"

  
# New object for further implementation

b = CSStudent("carter", 4)

  

print "\nValue of variable steam for each object"

print "a.stream =", a.stream

print "b.stream =", b.stream

Выход:

a.tream = cse

Class variable changes to mec

Value of variable steam for each object
a.stream = mec
b.stream = mec

Эта статья предоставлена Нихилом Кумаром Сингхом . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Изменение членов класса в Python

0.00 (0%) 0 votes