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