যখন আমরা একটি ক্লাসের ভেতরে কিন্তু কোনো মেথডের বাইরে একটি ভেরিয়েবল ডিক্লেয়ার করি, তাকে পাইথনে ক্লাস বা স্ট্যাটিক ভেরিয়েবল বলা হয়। ক্লাস বা স্ট্যাটিক ভেরিয়েবলকে ক্লাসের মাধ্যমে রেফার করা যায় কিন্তু সরাসরি ইনস্ট্যান্সের মাধ্যমে নয়।
ক্লাস বা স্ট্যাটিক ভেরিয়েবল আপার সেম নামের অন্য মেম্বার ভেরিয়েবলের সাথে সম্পূর্ণ ভিন্ন এবং কোনো কনফ্লিক্ট করে না। নিচে ক্লাস বা স্ট্যাটিক ভেরিয়েবল ব্যবহারের একটি প্রোগ্রাম দেওয়া হলো:
উদাহরণ
class Fruits(object):
count = 0
def __init__(self, name, count):
self.name = name
self.count = count
Fruits.count = Fruits.count + count
def main():
apples = Fruits("apples", 3)
pears = Fruits("pears", 4)
print(apples.count)
print(pears.count)
print(Fruits.count)
print(apples.__class__.count) # This is Fruit.count
print(type(pears).count) # So is this
if __name__ == '__main__':
main()
ফলাফল
3 4 7 7 7
ক্লাস লেভেলে ডিফাইন করা ভেরিয়েবল ব্যবহারের আরেকটি উদাহরণ:
উদাহরণ
class example:
staticVariable = 9
# Access through class
print(example.staticVariable) # Gives 9
# Access through an instance
instance = example()
print(instance.staticVariable) # Again gives 9
# Change within an instance
instance.staticVariable = 12
print(instance.staticVariable) # Gives 12
print(example.staticVariable) # Gives 9
আউটপুট
9 9 12 9