Python Encapsulation : Dict with Class Getter And Setter : Private

تم تحميل الصفحة في 0,8501547 ثانية
Encapsulation : Dict with Class Getter And Setter : Private

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,339
الإعجابات
3,100
النقاط
198
السلام عليكم ورحمة الله وبركاته

شرح كيفية عمل الـ Encapsulation في لغة بايثون

اولآ يجب ان تعلم ان :

username__ برايفت لا يمكن استدعائه في دالة main
username عام يمكن اسدعائه في دالة main
username_ محمي لا يمكن اسدعائة في دالة main


كود:
class Users:
   
    __username = {} # this is Dictionary Variable Private
    # username = {}  // this is Dictionary Variable Public
    # _username = {} // this is Dictionary Variable Protocted

    def __setattr__(self,Key,Values): # this is Setter Function
        self.__username[Key] = Values
        return self.__username
   
    def __getattr__(self): # this is Getter Function
        for K,V in self.__username.items():
            print (K,V)

if __name__ == '__main__':

    User,Num= Users(),0

    while Num < 3:
        Name = input("Enter Name: ")
        User.__setattr__(Num,Name)
        Num += 1

    User.__getattr__()

قم بتجربة الـ username المتغير وقم بستدعائه في الـ main سيتم اسدعائه بدون اي مشاكل اما مع الـ username__ و username_ لا يمكن اسدعائه في دالة main

هذي امور يجب ان تراعي في كتابتها بالشفره الخاصه بك .

والخلاصه هيا : Encupsuliton
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,339
الإعجابات
3,100
النقاط
198
اي سؤال لا تتردد في طرحه بالخدمه يا اخواني فالله فيما يخص لغة بايثون

بخصوص الـ abstract في لغة بايثون راح نتحدث عنه لاحقآ طبعآ الـ abstract يعتمد على مكتبة abc

ويتم اسدعائها مع الدوال المطلوبه للمبرمج بهذا الشكل

from abc import ABCMeta,abstractmethod

لاحقآ ان شاء الله نتكلم عن الـ Abstract

بالتوفيق لكم
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,339
الإعجابات
3,100
النقاط
198
وهذا للتعامل مع قواعد البيانات تخزين واظهار البيانات من القاعده


Python:
import sqlite3

conn = sqlite3.connect('UserDB.db')

class Users():

    __username = {} # this is Dictionary Variable Private
    # username = {}  // this is Dictionary Variable Public
    # _username = {} // this is Dictionary Variable Protocted

    def __setattr__(self,Key,Values): # this is Setter Function
        self.__username[Key] = Values
        conn.execute('insert into Customers(UserID,UserName) values (?,?)',(Key,self.__username[Key]))
        return conn.commit()

    def __getattr__(self): # this is Getter Function
        for K,V in conn.execute('select * from Customers'):
            print (K,V)


if __name__ == '__main__':

    User,Num= Users(),0

    while Num < 5:
        Name = input("Enter Name: ")
        User.__setattr__(Num,Name)
        Num += 1

    User.__getattr__()
نفس الكلاس ولكن اضافة اوامر الـ sql ومكتبة sqlite3

بالتوفيق للجميع
 

Mariio

.:: مُراقب أقسام البرمجة ::.
rankrankrankrankrankrank
طاقم الإدارة
إنضم
1 مايو 2007
المشاركات
4,883
الإعجابات
4,431
النقاط
133
الإقامة
USA
وعليكم السلام

شكرا لمواضيعك الرائعه اخي عبدالله
ان شاء الله كلها تنقل لقسم البايثون عند فتحه
 

عـبـدالـله

.:: أبو مـحـمـد ::.
rankrankrankrankrank
إنضم
5 ديسمبر 2013
المشاركات
2,339
الإعجابات
3,100
النقاط
198
وعليكم السلام

شكرا لمواضيعك الرائعه اخي عبدالله
ان شاء الله كلها تنقل لقسم البايثون عند فتحه
العفو اخي العزيز ان شاء الله القادم اجمل بس طول موضوع اضافة القسم :(
 

Mariio

.:: مُراقب أقسام البرمجة ::.
rankrankrankrankrankrank
طاقم الإدارة
إنضم
1 مايو 2007
المشاركات
4,883
الإعجابات
4,431
النقاط
133
الإقامة
USA
العفو اخي العزيز ان شاء الله القادم اجمل بس طول موضوع اضافة القسم :(

هناك خطط لترتيب الاقسام واضافه اقسام جديده او دمج اقسام لهذا خلف الكواليس يوجد الكثير من الاعمال للادارين من نقل مواضيع وتحضيرها
غير هذا يوجد الكثير من المشاريع من قبل ابو ماجد
ان شاء الله عن قريب جدا يفتح القسم
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل