對象是類的實例。類只是對象的藍圖。因此,考慮你的類定義 -
# Note the added (object) - this is the preferred way of creating new classes
class Student(object):
name = "Unknown name"
age = 0
major = "Unknown major"
您可以明確地分配屬性的Student
一個新實例創建make_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
當您使用調用構造函數。它將採用__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__'方法是與此有關:http://docs.python.org/2/reference/datamodel.html#object.__init__ – wim 2013-02-26 04:51:34
無(沒有引號)是python – monkut 2013-02-26 05:00:24