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

2

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

کیانا ابراهیمی Answered question اکتبر 15, 2020
Add a Comment
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+=’\n’
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]]

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

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

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

کیانا ابراهیمی Answered question اکتبر 15, 2020
Add a Comment
Write your answer.
  • Active
  • Views1891 times
  • Answers1 answer
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

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

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

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