类基础(实例) - python 2.7

时间:2015-08-09 17:02:38

标签: python python-2.7

我发布了两段代码,第一段有两个实例:

class student:
    def display_name(self, name):
        print "student name is ", name
    def class_room(self, standard):
        print "Student Section is ", standard

instance1 = student()
instance2 = student()

instance1.display_name('Tom')
instance1.class_room('12th "B"')
instance2.display_name('Dick')
instance2.class_room('11th "B"')

第二个有一个实例:

class student:
    def display_name(self, name):
        print "student name is ", name
    def class_room(self, standard):
        print "Student Section is ", standard

instance1 = student()

instance1.display_name('Tom')
instance1.class_room('12th "B"')
instance1.display_name('Dick')
instance1.class_room('11th "B"')

有什么区别?

1 个答案:

答案 0 :(得分:2)

我认为你误解了课程的使用。在您的示例中,您的类实例基本上没有状态。这些函数不会使用它们的self参数,也可能是静态类方法。这就是为什么你的两个例子会产生相同的输出,它们与他们调用的实例无关。

通常,您将拥有该类的每个实例都可以设置的类的属性。然后在各种方法中,您可以从self实例访问这些属性。例如

class Student:
    def __init__(self, name, standard):
        self.name = name
        self.standard = standard
    def display_name(self):
        return 'student name is {}'.format(self.name)
    def class_room(self):
        return 'student section is {}'.format(self.standard)

现在你可以制作两个实例

>>> instance1 = Student('Tom', '12th B')
>>> instance2 = Student('Dick', '11th B')

现在你可以从这些实例中调用这些方法,它将使用它们的属性

>>> instance1.display_name()
'student name is Tom'
>>> instance2.display_name()
'student name is Dick'
>>> instance1.class_room()
'student section is 12th B'
>>> instance2.class_room()
'student section is 11th B'