第一個自己編寫的面向對象的Python例子

class Student(object):     #定義一個類,括號內容表示繼承自那個類,不知道繼承自哪個類就用object類#
    def __init__(self,name,score):#__init__是一個初始化的方法,定義的參數,屬性可以在全局中調用,這裏的name,score是一個全局參數#
        self.name=name      
        self.score=score
        self.tt=name+'的分數是'+str(score) #全局屬性,Python對象可以隨意定義增加屬性,這裏的name,socore是一個變量。#
    def print_score(self,s): 
        print('%s : %s,%s' %(self.name,self.score,self.tt))#全局屬性,可以在類中所有法使用#
        print(s)           #s是一個print_socre方法裏的私有參數,只能在這個方法中調用,一個方法可以有參數,但是用不用都沒有關係,可以沒有屬性,#
    def print_grade(self):
        if self.score>=90:
            ##return '成績優秀'  #一個方法(函數)可以不用返回值,返回值不會打印到屏幕上面,返回值是爲了賦值方便,沒有返回值的方法(函數),調用的時候不用賦值#
            print('成績優秀')
        elif self.score>=80:
            ##return '成績良好'
            print('成績良好')
        elif self.score>=60:
            ##return '成績及格'
            print('成績及格')
        else:
            ##return '成績不及格'
            print('成績不及格')
b = Student('張三',90)#通過=類名()創建了一個實例(對象)b,括號裏傳遞的是全局參數的值#
c = Student('李四',80)
d = Student('李四',65)   
b.print_score(6) #實例b調用類中的print_score()方法,以及給類中某方法的一個print_score()私有參數s的值6#
b.print_grade()    
c.print_score(6)
c.print_grade()
d.print_score(6)
d.print_grade()
'''
以下是輸出結果
>>> 
張三 : 90,張三的分數是90
6
成績優秀
李四 : 80,李四的分數是80
6
成績良好
李四 : 65,李四的分數是65
6
成績及格
>>> 
'''
'''面向對象最重要的概念就是類(Class)和實例(Instance),
必須牢記類是抽象的模板,比如Student類,而實例是根據類創建出來的一個個具體的“對象”,
每個對象都擁有相同的方法,但各自的數據可能不同。

小結
類是創建實例的模板,而實例則是一個一個具體的對象,各個實例擁有的數據都不相同;
通過在實例變量上調用方法,我們就直接操作了對象內部的數據,但無需知道方法內部的實現細節。
和靜態語言不同,Python允許對實例變量綁定任何數據,也就是說,對於兩個實例變量,雖然它們都是同一個類的不同實例,但擁有的變量名稱都可能不同:
'''

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章