वस्तुएं वर्गों का उदाहरण हैं। कक्षाएं वस्तुओं के लिए केवल ब्लूप्रिंट हैं। तो अपनी कक्षा की परिभाषा दी -
# Note the added (object) - this is the preferred way of creating new classes
class Student(object):
name = "Unknown name"
age = 0
major = "Unknown major"
आप make_studentस्पष्ट रूप से नए उदाहरण के लिए विशेषताओं को निर्दिष्ट करके एक फ़ंक्शन बना सकते हैं Student-
def make_student(name, age, major):
student = Student()
student.name = name
student.age = age
student.major = major
return student
लेकिन यह शायद एक निर्माता ( __init__) में ऐसा करने के लिए अधिक समझ में आता है -
class Student(object):
def __init__(self, name="Unknown name", age=0, major="Unknown major"):
self.name = name
self.age = age
self.major = major
जब आप उपयोग करते हैं तो कंस्ट्रक्टर को कहा जाता है Student()। यह __init__विधि में परिभाषित तर्कों को ले जाएगा । कंस्ट्रक्टर हस्ताक्षर अब अनिवार्य रूप से होगा Student(name, age, major)।
यदि आप इसका उपयोग करते हैं, तो एक make_studentफ़ंक्शन तुच्छ है (और शानदार) -
def make_student(name, age, major):
return Student(name, age, major)
मज़े के लिए, make_studentएक वर्ग को परिभाषित किए बिना एक फ़ंक्शन बनाने का तरीका यहां दिया गया है । कृपया घर पर यह कोशिश न करें।
def make_student(name, age, major):
return type('Student', (object,),
{'name': name, 'age': age, 'major': major})()
__init__विधि यहां प्रासंगिक है: docs.python.org/2/reference/datamodel.html#object.__init__