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 में self क्या है? | Explained Karo | Python OOP Hindi

Python me self kya hai - self as Default Argument Explained

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

पिछले lesson में हमने Class और Object का basic relationship समझा था। अब जब हम Class के अंदर methods (functions) लिखना शुरू करते हैं, तो वहाँ हर जगह एक शब्द बार-बार दिखता है — self। बहुत से beginners को यह समझ नहीं आता कि self आखिर है क्या और इसे हर जगह क्यों लिखना पड़ता है।

इस lesson में हम सिर्फ self को ही पूरी तरह, step-by-step समझेंगे। अगर आपने अभी Python Classes & Objects नहीं पढ़ा है, तो पहले उसे पढ़ना जरूरी है, क्योंकि self पूरी तरह उसी concept पर आधारित है। Examples खुद run करने के लिए हमारा Online Python Editor & Compiler use कर सकते हैं।

🎥 Video में पूरा Topic समझें
⚠️ इस Lesson का Scope: इस lesson का पूरा focus केवल self पर है। Inheritance, Polymorphism, Encapsulation, Abstraction और दूसरे advanced OOP concepts को इस lesson में detail में नहीं पढ़ाया जाएगा — इन्हें आगे dedicated lessons में अलग-अलग practical examples के साथ समझाया जाएगा।

self क्या है?

self Python में Class के अंदर लिखे गए method का पहला parameter होता है, जो उसी Object को represent करता है जिसने उस method को call किया है।

सरल भाषा में — self का मतलब है "यह वाला Object", यानी जिस Object से method call हुआ है, उसी की तरफ इशारा।
Example
class Student: def show_message(self): print("Yeh method kaam kar raha hai!") student1 = Student() student1.show_message()

Output:

Yeh method kaam kar raha hai!

यहाँ show_message(self) में लिखा self Python को बताता है कि यह method किसी Object पर काम करेगा।

Try it Yourself »

self और Object का Relationship

self कोई fixed या predefined value नहीं है — यह हमेशा उसी Object को represent करता है, जिससे method को call किया गया है।

student1.show_message() │ ▼ Python अपने आप student1 को self में भेज देता है │ ▼ Method के अंदर self = student1

इसीलिए अगर दो अलग objects एक ही method को call करें, तो हर बार self अलग Object को represent करेगा।

Method में self क्यों लिखा जाता है?

Class के अंदर बने हर normal method में self को पहले parameter की तरह लिखना जरूरी है — ताकि Python को पता चल सके कि यह method किसी particular Object पर काम करेगा, न कि independently।

Example — अगर self न लिखें
class Student: def show_message(): # self गायब है print("Hello") student1 = Student() student1.show_message() # TypeError

Output:

TypeError: show_message() takes 0 positional arguments but 1 was given

Python ने खुद student1 को method में भेजने की कोशिश की, लेकिन method में उसे पकड़ने के लिए कोई parameter ही नहीं था — इसलिए error आया।

Python Method Call करते समय self कैसे काम करता है?

जब हम object.method() लिखते हैं, तो Python internally इसे कुछ इस तरह समझता है:

आप जो लिखते हैं
student1.show_message()
Python असल में जो करता है
Student.show_message(student1)

Python student1 को अपने-आप पहले argument की तरह method में भेज देता है, जिसे method के अंदर self के नाम से receive किया जाता है। यही वजह है कि self को लिखना जरूरी है, भले ही call करते समय हम उसे manually कभी pass नहीं करते।

Current Object को self कैसे Represent करता है?

Example
class Student: def show_identity(self): print("Main object hoon:", self) student1 = Student() print("Yeh hai student1:", student1) student1.show_identity()

Output (जैसा):

Yeh hai student1: <__main__.Student object at 0x...A1> Main object hoon: <__main__.Student object at 0x...A1>

दोनों lines में memory address बिल्कुल same है — यह साफ दिखाता है कि method के अंदर self असल में वही student1 Object है।

Try it Yourself »

self.attribute क्या होता है?

self.attribute का मतलब है — current Object का यह particular data। इसी syntax से किसी Object में data set और access किया जाता है।

Example
class Student: def set_name(self, name): self.name = name def show_name(self): print("Naam hai:", self.name) student1 = Student() student1.set_name("Ankit") student1.show_name()

Output:

Naam hai: Ankit

self.name = name ने दी गई value को current object (यहाँ student1) के साथ attach कर दिया, और self.name से उसे फिर से access किया गया।

Try it Yourself »

Object के Data को self की मदद से Access करना

Example
class Student: def set_marks(self, marks): self.marks = marks def show_result(self): if self.marks >= 40: print("Result: Pass, Marks:", self.marks) else: print("Result: Fail, Marks:", self.marks) student1 = Student() student1.set_marks(75) student1.show_result()

Output:

Result: Pass, Marks: 75

Method के अंदर self.marks के through हमें हमेशा उसी Object का data मिलता है, जिससे method को call किया गया था।

Try it Yourself »

Multiple Objects के साथ self कैसे काम करता है?

यह self को समझने का सबसे जरूरी हिस्सा है — हर Object के लिए self अपने-आप उसी Object को represent करता है, इसलिए एक ही method अलग-अलग objects के लिए अलग-अलग data के साथ सही तरीके से काम करता है।

Example
class Student: def set_name(self, name): self.name = name def show_name(self): print("Naam hai:", self.name) student1 = Student() student1.set_name("Ankit") student2 = Student() student2.set_name("Priya") student1.show_name() student2.show_name()

Output:

Naam hai: Ankit Naam hai: Priya

जब student1.show_name() call हुआ, तब self का मतलब student1 था। जब student2.show_name() call हुआ, तब self का मतलब student2 हो गया — same method, लेकिन हर बार सही object का data।

Try it Yourself »

self और Normal Arguments में Difference

selfNormal Argument
Automatically Python द्वारा भेजा जाता हैManually call करते समय value देनी पड़ती है
हमेशा current Object को represent करता हैकोई भी data हो सकता है — number, string, आदि
Method call करते समय इसे खुद नहीं लिखतेMethod call करते समय इसे देना पड़ता है
हमेशा पहला parameter होता हैकिसी भी position पर हो सकता है
Example — दोनों का फर्क साफ देखें
class Student: def set_marks(self, marks): # self अपने-आप, marks manually self.marks = marks student1 = Student() student1.set_marks(90) # सिर्फ marks दिया, self नहीं दिया

set_marks(self, marks) में self अपने-आप मिल जाता है, लेकिन marks के लिए हमें call करते समय value देनी पड़ती है।

Try it Yourself »

self को Default Argument क्यों कहा जाता है?

self को अक्सर "default argument" कहा जाता है, क्योंकि Python इसे method call करते समय अपने-आप, बिना किसी manual effort के भर देता है — programmer को इसे explicitly pass करने की जरूरत कभी नहीं पड़ती।

Note: self कोई Python का reserved keyword नहीं है — technically आप इसकी जगह कोई और नाम भी रख सकते हैं। लेकिन self एक इतनी मजबूत convention है कि लगभग हर Python developer इसी नाम का इस्तेमाल करता है, ताकि code हर जगह आसानी से समझ आए।

Practical Car Example

Example
class Car: def set_details(self, brand, speed): self.brand = brand self.speed = speed def show_details(self): print(self.brand, "ki speed hai:", self.speed, "km/h") car1 = Car() car1.set_details("Honda", 180) car2 = Car() car2.set_details("Tesla", 250) car1.show_details() car2.show_details()

Output:

Honda ki speed hai: 180 km/h Tesla ki speed hai: 250 km/h

हर car अपनी details self के through अलग से रखती और दिखाती है, भले ही दोनों एक ही Car Class से बनी हों।

Try it Yourself »

Practical Student Example

Example
class Student: def set_info(self, name, course): self.name = name self.course = course def show_info(self): print(self.name, "is learning", self.course) student1 = Student() student1.set_info("Ankit", "Python") student2 = Student() student2.set_info("Priya", "Data Analytics") student1.show_info() student2.show_info()

Output:

Ankit is learning Python Priya is learning Data Analytics
Try it Yourself »

Common Beginner Mistakes

❌ Method में self लिखना भूल जाना
class Student: def show(): # self गायब print("Hello")
✅ सही तरीका
class Student: def show(self): print("Hello")
❌ Method Call करते समय खुद self देने की कोशिश करना
student1.show_name(student1) # गलत, extra argument
✅ सही तरीका
student1.show_name() # self अपने-आप चला जाता है
❌ self.attribute और सिर्फ attribute को Confuse करना
class Student: def set_name(self, name): name = name # यह Object में save नहीं होगा

बिना self. लगाए, value सिर्फ method के अंदर temporary रहती है — Object का permanent data नहीं बनती।

✅ सही तरीका
def set_name(self, name): self.name = name
❌ self की जगह कोई और नाम इस्तेमाल करके Confusion पैदा करना

Technically self की जगह कोई और नाम काम कर सकता है, लेकिन ऐसा करने से code अजीब और non-standard लगने लगता है। Beginners को हमेशा self नाम ही इस्तेमाल करना चाहिए।

VS Code में Practical Python Coding

अब इसे खुद VS Code में try करते हैं। एक नई file self_demo.py बनाइए और यह code लिखिए:

self_demo.py
class Student: def set_info(self, name, marks): self.name = name self.marks = marks def show_result(self): if self.marks >= 40: print(self.name, "- Pass with", self.marks, "marks") else: print(self.name, "- Fail with", self.marks, "marks") student1 = Student() student1.set_info("Ankit", 85) student2 = Student() student2.set_info("Rahul", 30) student1.show_result() student2.show_result()

File save करके VS Code के Terminal में इसे run कीजिए।

Terminal में Output

$ python self_demo.py Ankit - Pass with 85 marks Rahul - Fail with 30 marks

दोनों results अलग-अलग हैं, क्योंकि हर बार self अपने object (student1 या student2) के data के साथ काम कर रहा था।

Exercise ?

जब हम student1.show_name() call करते हैं, तो Python method के अंदर self को किस value से भरता है?

एक खाली value से
student1 Object से
Student Class के नाम से

Coding Challenge

अब खुद अपने VS Code या Online Python Editor में यह challenge solve कीजिए:

  1. एक Book Class बनाइए जिसमें set_details(self, title, price) और show_details(self) नाम के दो methods हों।
  2. set_details() के अंदर self.title और self.price set कीजिए।
  3. उस Class से दो अलग objects — book1 और book2 — बनाइए, और हर एक में अलग details भरिए।
  4. दोनों books की details show_details() से अलग-अलग print कीजिए।
  5. खुद से सोचिए — अगर self किसी method से हटा दें, तो क्या error आएगा? फिर code में actually हटाकर test कीजिए।

Quick Revision

Conceptमतलब
selfCurrent Object को represent करने वाला पहला parameter
self.attributeCurrent Object का particular data
Automatic Passingobject.method() कहने पर Python खुद object को self में भेजता है
Default Argumentself को manually pass नहीं करना पड़ता

FAQ

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

self Class के method का पहला parameter है, जो उसी Object को represent करता है जिससे method को call किया गया है।

self को manually pass क्यों नहीं करना पड़ता?

क्योंकि Python object.method() को internally Class.method(object) की तरह call करता है — इसलिए object अपने-आप पहले argument की तरह method में चला जाता है, जिसे self के नाम से receive किया जाता है।

self और normal argument में क्या फर्क है?

self automatically Python द्वारा भरा जाता है और हमेशा current object को represent करता है, जबकि normal arguments को method call करते समय manually value देनी होती है।

क्या self की जगह कोई और नाम इस्तेमाल कर सकते हैं?

Technically हाँ, लेकिन ऐसा करना एक बहुत strong convention को तोड़ना है। लगभग हर Python developer self नाम ही इस्तेमाल करता है, इसलिए beginners को भी यही नाम इस्तेमाल करना चाहिए।

अगर method में self न लिखें तो क्या होगा?

Python object को method में भेजने की कोशिश करेगा, लेकिन उसे पकड़ने के लिए कोई parameter नहीं होगा, जिससे TypeError आएगा।

Summary

self = "यह वाला Object", यानी जिस Object से method call हुआ है, उसी का representation।

इस lesson में आपने सीखा कि self क्या है, यह current Object को कैसे represent करता है, method में इसे क्यों लिखना पड़ता है, self.attribute से Object का data कैसे access और set होता है, और multiple objects के साथ self कैसे अलग-अलग तरीके से काम करता है।

self को अच्छी तरह समझ लेने के बाद, Python OOP के आगे के concepts — __init__, Constructor, Inheritance — समझना काफी आसान हो जाएगा। अब ऊपर दिया गया coding challenge खुद VS Code या Online Editor में solve करें।

Related Articles

🧑‍💻 Python Coding Lab

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