Seedha content par jao
🤖 Python Hindi Bot
Namaste! Main Python Hindi Bot hoon 🐍
Python ya AI se related kuch bhi type karke pucho, ya neeche se quick sawaal chuno.
WhatsApp

Stay Connected with PythonHindii

Join our WhatsApp Community to get the latest Python tutorials, coding tips, interview questions, project updates, and learning resources directly on your phone.

Join WhatsApp Community
⇧
Python Hindi Logo
Python in Hindi | Programming Education
🎓 100% Free · Hindi me · Beginner se Career tak

Python Tutorial in HindiiLearn Python Programming for Free

Python, AI, Data Analytics aur SQL ek hi jagah, simple Hindi me. Padho, browser me code chalao, projects banao aur career shuru karo.

main.py
# Python seekho, Hindi me naam = "Ravi" for i in range(3): print("Namaste", naam)
▸ python main.py
🐍 Python 🤖 AI & ML 📊 Data 🗄️ SQL

Chahe Student ho ya Professional, yahan aapke liye sab hai

Apna card chuno, seedha sahi jagah pahunch jaoge.

🎓

Student ho?

School ya college me ho? Python zero se seekho, notes aur cheat sheets ke saath.

  • Python basics se OOP tak
  • Notes, PDFs aur Cheat Sheets
  • Browser me practice, kuch install nahi
💼

Working Professional ho?

Kaam ke saath nayi skill jodo: data, SQL aur AI se apna kaam tez karo.

  • Pandas, NumPy, Excel, Power BI
  • SQL aur MySQL databases
  • Automation aur AI Tools
🚀

Job ya Career change?

Projects banao, interview ki taiyari karo aur sahi roadmap follow karo.

  • Real projects, portfolio ke liye
  • Python aur SQL interview questions
  • AI Engineer, Data Scientist roadmap

Python Hindii Kaise Kaam Karta Hai?

Ek hi jagah 4 layers: seekho, practice karo, skills banao aur career shuru karo. Har layer ek step hai, us par click karke seedha wahan pahuncho. Computer par drag karke 3D me ghumao bhi.

Layer 1 · Seekho

Python Basics se Advanced tak

Variables, loops, functions se OOP tak, sab simple Hindi me. Yahin se shuru karo.

Naye ho? 3 step me shuru karo

💻 Online Code Editor

Browser me hi code likho aur turant chalao

Koi software install nahi. Code likho, Run dabao aur result usi waqt dekho.

  • Python, Java, C, C++, JavaScript, HTML aur aur bhi languages
  • input(), graphs aur multi-file HTML project bhi chalte hain
  • Mobile aur computer, dono par chalta hai
main.py
naam = input("Naam batao: ") for i in range(3): print("Namaste", naam)
▸ python main.py
PythonJavaCC++JavaScriptHTML

Python se AI tak ka poora rasta

8 steps, ek ke baad ek. Aage-peeche ghumao aur apni stage se seedha shuru karo.

Step 1 🐍

Python Basics

IntroductionVariablesData TypesOperatorsInput & OutputConditionsLoops
Start Python →
Step 2 💻

Python Intermediate

ListsTuplesSetsDictionariesStringsModulesFile Handling
Continue Python →
Step 4 🗄️

SQL & Databases

SQL BasicsMySQLSELECTINSERTUPDATEDELETEJOIN
Learn SQL →
Step 5 📊

Data Analytics

NumPyPandasData CleaningData VisualizationMatplotlibExploratory Data Analysis
Learn Data Analytics →
Step 6 🤖

Machine Learning

ML BasicsSupervised & Unsupervised LearningRegressionClassificationModel EvaluationScikit-learn
Learn Machine Learning →
Step 7 🧠

Artificial Intelligence

AI FundamentalsGenerative AIAI ToolsPrompt EngineeringLLM ConceptsAI Automation
Explore AI →
Step 8 🚀

Projects & Career

Python ProjectsAI ProjectsData ProjectsPortfolioGitHubInterview PreparationCareer Roadmap
Build Your Career →
Step 1 / 8

Python Encapsulation in Hindi: Public, Private, Protected and @property Explained

Python Encapsulation Explained in Hindi

Python Encapsulation

Object-Oriented Programming (OOP) के मुख्य स्तंभों में से एक सबसे महत्वपूर्ण सिद्धांत है — Encapsulation (डेटा बंडलिंग और सुरक्षा)। जब हम सॉफ्टवेयर बनाते हैं, तो हम नहीं चाहते कि कोई भी बाहरी कोड हमारे संवेदनशील डेटा (जैसे पासवर्ड, बैंक बैलेंस आदि) को सीधे बदल सके। Encapsulation इसी सुरक्षा और नियंत्रण को लागू करता है।

अगर आपने अभी तक Python Classes & Objects नहीं पढ़ा है, तो पहले उसे पढ़ना जरूरी है, क्योंकि Encapsulation पूरी तरह Class के अंदर डेटा को सुरक्षित रखने पर आधारित है। कोड को खुद चलाकर देखने के लिए हमारा Online Python Editor & Compiler इस्तेमाल करें।

⚠️ इस Lesson का Scope: इस lesson में हम समझेंगे कि Encapsulation क्या है, इसकी जरूरत क्यों है, Public, Protected (_var) और Private (__var) मेंबर्स क्या होते हैं, Name Mangling क्या है, Getter/Setter और @property से डेटा एक्सेस को कैसे सुरक्षित रखा जाता है।

Encapsulation क्या है?

Encapsulation वह प्रक्रिया है जिसमें डेटा (variables/attributes) और उस डेटा पर काम करने वाले फ़ंक्शन्स (methods) को एक सिंगल यूनिट — यानी Class के अंदर एक कैप्सूल (Capsule) की तरह बांधकर रखा जाता है।

सरल भाषा में — Encapsulation का मतलब है: "डेटा और उसके तरीकों को एक साथ पैक करना और अनधिकृत सीधे बदलाव (direct unauthorized access) से सुरक्षित रखना।"

Encapsulation की जरूरत क्यों होती है?

मान लीजिए आपके पास एक BankAccount क्लास है जिसमें balance = 5000 है। अगर कोई बाहर से सीधे acc.balance = -100000 कर दे, तो आपका सिस्टम क्रैश या नुकसान में आ जाएगा। Encapsulation हमें यह नियंत्रण देता है कि कोई भी डेटा सीधे बाहर से न बदला जा सके, बल्कि नियमों और वैलिडेशन (जैसे methods) के ज़रिए ही एक्सेस किया जाए।

┌─────────────────────────────────────────┐ │ CLASS CAPSULE │ │ │ │ Data (Private Attributes): __balance │ │ ▲ │ │ │ (Controlled) │ │ Methods: deposit(), withdraw() │ └─────────────────────────────────────────┘ ▲ │ Direct Access Blocked ❌ Outside World
🎥 Video में पूरा Topic समझें

Access Modifiers: Public, Protected और Private

Python में C++ या Java की तरह public या private कीवर्ड्स नहीं होते। यहाँ नामकरण परंपरा (naming convention) यानी Underscores (_) के ज़रिए एक्सेस कंट्रोल तय किया जाता है:

1. Public Members (डिफ़ॉल्ट)

जिन variables या methods के नाम के आगे कोई underscore नहीं होता, वे Public होते हैं। इन्हें क्लास के अंदर और बाहर कहीं से भी सीधे इस्तेमाल और बदला जा सकता है।

Example — Public Member
class Student: def __init__(self, name): self.name = name # Public variable s = Student("Aman") print(s.name) # Directly accessible s.name = "Rahul" # Directly modifiable print(s.name)

Output:

Aman Rahul

2. Protected Members (_variable)

जिस variable के नाम के आगे एक सिंगल अंडरस्कोर (_) लगा हो, वह Protected माना जाता है।

Python का नियम: यह कोई सख्त पाबंदी नहीं लगाता, बल्कि यह डेवलपर्स के बीच एक चेतावनी (convention) होती है कि "कृपया इसे क्लास या इसकी चाइल्ड क्लास के बाहर सीधे एक्सेस न करें।"

Example — Protected Member
class Company: def __init__(self): self._project = "Secret AI" # Protected c = Company() print(c._project) # Access ho jata hai, par aisa karna recommended nahi hai

3. Private Members (__variable)

जिस variable के नाम के आगे दो अंडरस्कोर (__) लगे हों, वह Private होता है। इसे क्लास के बाहर से सीधे एक्सेस नहीं किया जा सकता।

❌ Private Variable को सीधे एक्सेस करने पर Error
class BankAccount: def __init__(self, balance): self.__balance = balance # Private variable acc = BankAccount(5000) print(acc.__balance) # AttributeError!

Error Message:

AttributeError: 'BankAccount' object has no attribute '__balance'

Python Name Mangling क्या है?

जब आप किसी variable के आगे दो अंडरस्कोर (__var) लगाते हैं, तो Python अंदरूनी तौर पर उसका नाम बदलकर _ClassName__var कर देता है। इसी प्रोसेस को Name Mangling कहते हैं ताकि चाइल्ड क्लास में नाम आपस में टकराएं नहीं।

Example — Name Mangling के ज़रिए Private Data देखना
class Account: def __init__(self, balance): self.__balance = balance a = Account(10000) # Name Mangled syntax: _ClassName__var print(a._Account__balance)

Output:

10000

हालाँकि यह मुमकिन है, लेकिन कभी भी प्रोडक्शन कोड में प्राइवेट डेटा को इस तरह एक्सेस नहीं करना चाहिए।

Getter और Setter Methods

प्राइवेट डेटा को सुरक्षित तरीके से पढ़ने के लिए Getter और उसमें जरूरी वैलिडेशन के साथ बदलाव करने के लिए Setter मेथड बनाए जाते हैं।

Example — Getter और Setter के साथ Data Validation
class BankAccount: def __init__(self, balance): self.__balance = balance # Private data # Getter: balance dekhne ke liye def get_balance(self): return self.__balance # Setter: balance modify karne ke liye validation ke sath def set_balance(self, amount): if amount > 0: self.__balance = amount print("Balance updated successfully!") else: print("Invalid Amount! Balance negative nahi ho sakta.") acc = BankAccount(2000) print("Current Balance:", acc.get_balance()) acc.set_balance(-500) # Invalid value reject ho jayegi acc.set_balance(4500) # Valid value update ho jayegi print("New Balance:", acc.get_balance())

Output:

Current Balance: 2000 Invalid Amount! Balance negative nahi ho sakta. Balance updated successfully! New Balance: 4500
Try it Yourself »

@property Decorator (Pythonic Getter और Setter)

Python में get_balance() या set_balance() बार-बार लिखने की बजाय हम @property डेकोरेटर का इस्तेमाल करते हैं। इससे मेथड को कॉल करते समय () लगाने की जरूरत नहीं पड़ती और कोड एकदम साफ दिखता है।

Example — @property Decorator का इस्तेमाल
class Product: def __init__(self, price): self.__price = price @property def price(self): """Getter: Object.price ki tarah access hoga""" return self.__price @price.setter def price(self, new_price): """Setter: Object.price = value ki tarah set hoga""" if new_price > 0: self.__price = new_price else: print("Price zero ya negative nahi ho sakti!") p = Product(999) print("Product Price:", p.price) # Getter chalega (bina bracket ke) p.price = -50 # Validation block karega p.price = 1299 # Setter chalega print("Updated Price:", p.price)

Output:

Product Price: 999 Price zero ya negative nahi ho sakti! Updated Price: 1299
Try it Yourself »

Practical Example — Employee Salary System

आइए इसे एक कंपनी के एम्प्लॉई सैलरी सिस्टम से समझते हैं जहाँ सैलरी को प्राइवेट रखकर सिर्फ अधिकृत तरीके से इन्क्रीमेंट दिया जाता है:

Example — Employee Salary Encapsulation
class Employee: def __init__(self, name, salary): self.name = name # Public self.__salary = salary # Private (Directly hidden) def show_info(self): print(f"Employee: {self.name} | Salary: ₹{self.__salary}") def give_raise(self, percent): if 0 < percent <= 50: increment = self.__salary * (percent / 100) self.__salary += increment print(f"Salary incremented by {percent}%") else: print("Invalid hike percentage!") emp = Employee("Vikas", 50000) emp.show_info() # emp.__salary = 1000000 # Direct change nahi hoga emp.give_raise(15) emp.show_info()

Output:

Employee: Vikas | Salary: ₹50000 Salary incremented by 15% Employee: Vikas | Salary: ₹57500.0
Try it Yourself »

Common Beginner Mistakes

❌ प्राइवेट वेरिएबल को बाहर से सीधे एक्सेस करने की कोशिश
class Test: def __init__(self): self.__x = 10 t = Test() print(t.__x) # AttributeError!
✅ सही तरीका

हमेशा क्लास के अंदर Getter method या @property बनाकर ही वैल्यू एक्सेस करें।

❌ बाहर नया Variable बनाकर यह सोचना कि Private Data बदल गया
t = Test() t.__x = 50 # Ye class ka private data nahi badalta, balki bahar naya attribute bana deta hai!
❌ Single Underscore (_) को सख्त Private समझना

_variable सिर्फ एक convention (सलाह) है। Python इसपर कोई एक्सेस रोक नहीं लगाता। वास्तविक छिपाव के लिए डबल अंडरस्कोर (__variable) का इस्तेमाल करें।

Exercise ?

Python में किसी variable को Private बनाने के लिए उसके नाम के आगे क्या लगाया जाता है?

A) private_variable
B) _variable (Single Underscore)
C) __variable (Double Underscores)

Beginner Practical Coding Challenge

अब अपने Online Python Editor में यह अभ्यास प्रश्न पूरा कीजिए:

  1. एक UserAccount क्लास बनाइए जिसमें username (Public) और __password (Private) हो।
  2. एक मेथड check_password(self, input_password) बनाइए जो सही पासवर्ड मैच होने पर True और गलत होने पर False लौटाए।
  3. एक set_password(self, old_pwd, new_pwd) मेथड बनाइए जो तभी नया पासवर्ड सेट करे जब पुराना पासवर्ड सही हो और नया पासवर्ड कम से कम 6 अक्षरों का हो।
  4. ऑब्जेक्ट बनाकर पासवर्ड बदलने और चेक करने का फ्लो टेस्ट करें।

Quick Revision

प्रकार / सिंटेक्सएक्सेस स्तर (Access Level)मुख्य उद्देश्य
self.namePublicकहीं से भी सीधे एक्सेस और मॉडिफाई हो सकता है
self._projectProtectedकेवल क्लास और सब-क्लास के लिए (डेवलपर कन्वेंशन)
self.__balancePrivateक्लास के बाहर सीधे छिपा रहता है (Name Mangling लागू)
_ClassName__varName Mangledप्राइवेट वेरिएबल का आंतरिक असली नाम
@propertyPythonic Getterमेथड को प्रॉपर्टी की तरह पढ़ने की सुविधा देता है
@prop.setterPythonic Setterडेटा सेट करते समय वैलिडेशन लगाने की सुविधा देता है

FAQ

Python में Encapsulation क्या है?

Encapsulation डेटा (attributes) और कोड (methods) को एक क्लास में सुरक्षित बाँधने और बाहरी अनधिकृत बदलाव से सुरक्षित रखने की तकनीक है।

क्या Python में कोई variable 100% Private हो सकता है?

नहीं, Python में Name Mangling के ज़रिए _ClassName__variable लिखकर प्राइवेट डेटा को भी पढ़ा जा सकता है। Python डेवलपर्स को जिम्मेदार मानता है ("We are all consenting adults here")।

Single Underscore और Double Underscore में क्या फर्क है?

सिंगल अंडरस्कोर (_var) सिर्फ डेवलपर्स के लिए एक संकेत है कि इसे बाहर यूज़ न करें (Protected), जबकि डबल अंडरस्कोर (__var) पर Python Name Mangling लागू करके उसे सीधे बाहर से छुपा देता है (Private)।

Getter और Setter का मुख्य फायदा क्या है?

Getter और Setter हमें डेटा में फेरबदल करने से पहले कंडीशन और वैलिडेशन (जैसे सैलरी > 0, पासवर्ड लेंथ) लगाने की पूरी आजादी देते हैं।

Summary

Encapsulation = डेटा और मेथड्स को क्लास कैप्सूल में बांधना + प्राइवेट डेटा पर वैलिडेशन के साथ सुरक्षित नियंत्रण रखना।

इस ट्यूटोरियल में आपने सीखा कि Encapsulation क्या है, Public, Protected और Private मेंबर्स कैसे काम करते हैं, Name Mangling क्या है, और Getter/Setter व @property से डेटा को सुरक्षित कैसे रखा जाता है।

अब ऊपर दिया गया UserAccount कोडिंग चैलेंज अपने ऑनलाइन कंपाइलर में रन करें और खुद प्रैक्टिस करें।

Related Articles

🧑‍💻 Python Coding Lab

Python code likho, run karo aur practice karo — directly browser mein.