متغیر ها و توابع اختصاصی کدامند ؟ توضیح دهید .

2

متغیر ها و توابع اختصاصی کدامند ؟ توضیح دهید .

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
0

متغیر ها و توابع اختصاصی کدامند ؟ توضیح دهید .

اگر بخواهیم مهمترین متغیر موجـود در کـلاس مـاتریس را مشـخص کنـیم، بـیشـک متغیـر matrix را نام خواهیم برد. زیرا همۀ عناصر در این متغیر که از نوع لیست میباشد، وجود دارد. حـال اگر این متغیر به نوعی توسط دیگر توابع و یا حتی توسط خود کاربر از بین برود و یا خراب شود، شـیء ماتریس ما هیچ مورد استفادهاي ندارد. براي جلوگیري از چنین حادثهاي ما باید دسترسی به matrix را محدود کنیم. در پایتون اگر دو علامت خط زیر (_) را در ابتداي نام متغیرها و یا توابع یک کلاس قرار دهیم، این متغیرها یـا توابـع دیگر به روش نمادگذاري نقطهاي معمول قابل دستیابی نخواهند بود و براي کلاسی که تعریف شدهاند اختصاصی خواهند بود. البته باید توجه داشته باشـید کـه اشـیائی کـه از نـوع کـلاس حاضـر هسـتند میتوانند به این متغیرها دسترسی داشته باشند. با این قابلیت ما نام متغیر matrix را به matrix __تغییر  میدهـیم و در هـر جـا کـه ایـن متغیر را بهکار بردیم، از نام جدید آن استفاده میکنیم:

class Matrix:
def __init__(self, dimension1=0, dimension2=0):
zeroList = lambda n:[0 for i in range(n)]
self.__matrix = zeroList(dimensoin1)
for i in range(len(self.__matrix))
self.__matrix[i] = zeroList(dimension2)
self.dimensions = (dimension1, dimension2)
def __str__(self):
s=”
for i in range(self.dimensions[0]):
for j in range(self.dimensions[1]):
s+=`self.__matrix[i][j]`+’\t’
s+=’ ’
return s[:-1]
def inputItems(self):
for i in range(self.dimensions[0]):
for j in range(self.dimensions[1]):
while 1:
try:
self.__matrix[i][j]=input(‘Item[‘+`i`+’][‘+`j`+’]: ‘)
break
except NameError:
pass

حال در صورتی که بخواهیم از روش نمادگذاري نقطهاي استفاده کنیم بـا اعتـراض زیـر مواجـه خواهیم شد:

>> m = Matrix(2, 3)
>>> print m.__matrix
AttributeError: Matrix instance has no attribute ‘__matrix’

با اینکه استفاده از این نحوة نگارش بهمنظور اختصاصی کردن نام متغیرها و توابع میباشـد، امـا باز هم راهی براي دسترسی به این متغیرها وجود دارد که ما پیشنهاد میکنیم از آن استفاده نکنید:

>>> m._Matrix__matrix
[[0, 0], [0, 0]]

اگر پس از نام شیء و علامت نقطه یک علامت زیرخط (_) قرار دهید و نام کلاس و سـپس نـام متغیر یا تابع را ذکر کنید، میتوانید اختصاصی بودن یک تابع یا متغیر را منحل کنید. طراح ایـن زبـان معتقد است که این نه تنها نقطه ضعف پایتون نیست، بلکه کاملاً بر اساس طراحی میباشد.

برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها1525 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات