オブジェクトはクラスのインスタンスです。クラスは、オブジェクトの単なる設計図です。したがって、クラス定義が与えられた場合-
# 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})()