Python, creating objects

前端 未结 4 1020
旧巷少年郎
旧巷少年郎 2020-12-04 07:04

I\'m trying to learn python and I now I am trying to get the hang of classes and how to manipulate them with instances.

I can\'t seem to understand this practice pro

4条回答
  •  日久生厌
    2020-12-04 07:41

    class Student(object):
        name = ""
        age = 0
        major = ""
    
        # The class "constructor" - It's actually an initializer 
        def __init__(self, name, age, major):
            self.name = name
            self.age = age
            self.major = major
    
    def make_student(name, age, major):
        student = Student(name, age, major)
        return student
    

    Note that even though one of the principles in Python's philosophy is "there should be one—and preferably only one—obvious way to do it", there are still multiple ways to do this. You can also use the two following snippets of code to take advantage of Python's dynamic capabilities:

    class Student(object):
        name = ""
        age = 0
        major = ""
    
    def make_student(name, age, major):
        student = Student()
        student.name = name
        student.age = age
        student.major = major
        # Note: I didn't need to create a variable in the class definition before doing this.
        student.gpa = float(4.0)
        return student
    

    I prefer the former, but there are instances where the latter can be useful – one being when working with document databases like MongoDB.

提交回复
热议问题