Sobes.tech
Junior

Чӣ тавр тағйирёбандаи статикӣ дар Python?

sobes.tech AI

Ҷавоб аз AI

Дар Python, тағйирёбандаи статикӣ — ин тағйирёбандаест, ки ба синф тааллуқ дорад, на ба намунаи махсуси синф. Қимати он байни ҳамаи намунаҳои синф тақсим мешавад.

Хусусиятҳои асосӣ:

  • Диапазон: Дар дохили синф.
  • Вақти зиндагӣ: Дар тӯли тамоми вақти иҷрои барнома вуҷуд дорад.
  • Дастрасӣ: Мумкин аст ҳам тавассути номи синф, ҳам тавассути намунаи синф (гарчанде ки дастрасӣ тавассути номи синф барои нишон додани табиати статикӣ беҳтар аст).

Маслиҳат барои истифода:

class MyClass:
    # Тағйирёбандаи статикӣ
    static_variable = 10

    def __init__(self, instance_variable):
        # Тағйирёбандаи намуна
        self.instance_variable = instance_variable

# Дастрасӣ ба тағйирёбандаи статикӣ тавассути номи синф
print(MyClass.static_variable)

# Эҷоди намунаҳо
obj1 = MyClass(20)
obj2 = MyClass(30)

# Дастрасӣ ба тағйирёбандаи статикӣ тавассути намунаҳо
print(obj1.static_variable)
print(obj2.static_variable)

# Тағйир додани тағйирёбандаи статикӣ тавассути номи синф
MyClass.static_variable = 15

# Қимат барои ҳамаи намунаҳо тағир ёфт
print(obj1.static_variable)
print(obj2.static_variable)

Дар ин мисол, static_variable тағйирёбандаи статикӣ аст. Он дар як намуна барои тамоми синф MyClass вуҷуд дорад ва қимати он байни объектҳо obj1 ва obj2 тақсим мешавад. Тағйирот тавассути номи синф MyClass.static_variable = 15 дар ҳама намунаҳо таҷассум меёбад.