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 дар ҳама намунаҳо таҷассум меёбад.