متغیرهای کلاس افکار اولیه 🤔

من تازه شروع به یادگیری Python کرده ام، از زبان هایی مانند C# و JavaScript/TypeScript. من به این https://docs.python.org/3/tutorial/index.html آموزش فکر می کنم. به بخش کلاس ها رسیدم. یکی از چیزهایی که من احساس کردم استفاده از آن می تواند کمی مخاطره آمیز باشد، متغیرهای کلاس است. به این ترتیب می توانید کنترل وضعیت اشیاء در کد خود را هنگام استفاده از آنها از دست بدهید.
در اینجا نمونه Dog است که در آموزش پایتون وجود دارد.
class Dog:
kind = 'canine'
def __init__(self, name):
self.name = name
من به نمونه هایی از کلاس سگ می پردازم
fido = Dog('Fido')
buddy = Dog('Buddy')
print(fido.kind) // prints canine
print(buddy.kind) // prints canine
همه چیز خوب است، من می دانم که چه نوع خواهد بود. در آموزش بیان می کند که کلاس یک متغیر مشترک بین نمونه های کلاس است. مثل این
Dog.kind = 'dog'
print(fido.kind) // prints dog
print(buddy.kind) // prints dog
اما اگر تنظیم کنم kind
در یکی از نمونهها، نمونه به اشتراک گذاشته شد kind
fido.kind = 'super dog'
Dog.kind = 'dog'
print(fido.kind) // prints super dog
print(buddy.kind) // prints dog
در یک پایگاه کد بزرگ، می توان به راحتی مسیر کد را از دست داد kind
متغیر. واقعاً نمی توان به متغیر اعتماد کرد، زیرا می توان آن را با متغیر کلاس مشترک تغییر داد یا کدی متغیر نمونه را تنظیم کرده است.
یکی می تواند با استفاده خصوصی علامت گذاری کند _kind
به توسعه دهندگان دیگر بگویید که باید خصوصی در نظر گرفته شود، اما هنوز هم می توان به راحتی استفاده از آن را از دست داد. مطمئن نیستم که آیا هرگز بخواهم آن را به صورت عمومی به ما ارائه دهم. اما هنوز در Pyhon جدید است، بنابراین هنوز در حال یادگیری هستم.