1. 程式人生 > >python 面向對象(二)

python 面向對象(二)

init ade style obj urn 面向 def spa 封裝

1. 成員

成員共分為三類:

1變量:

  - 實例變量(字段)
    - 公有實例變量(字段)
    - 私有實例變量(字段)
  - 類變量(靜態字段)
    - 公有類變量(靜態字段)
    - 私有類變量(靜態字段)

class Student:
    school = "藍翔"       #公有的類變量
    __grade = "一年級"    #私有的類變量
    def __init__(self,name):
        self.name = name    #公有的實例變量
        self.__age
= 18 #私有的實例變量 stu = Student("Tom") print(stu.name) # print(stu.__age) #私有的實例變量不能在類外部訪問 print(Student.school) # print(Student.__grade) #私有的類變量不能在類外部訪問

2.方法

  實例方法
    有個self參數


  靜態方法 : 如果方法無需使用對象中封裝的值,那麽就可以使用靜態方法

    方法上邊有@staticmethod
    參數可有可無


  類方法 : 如果在方法中會使用到當前類,那麽就用類方法

    方法上邊有@classmethod
    有個cls參數

class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def dyname(self):       #實例方法
        print(self.name)
    @staticmethod
    def dy(x):              #靜態方法:如果方法無需使用對象中封裝的值,那麽就可以使用靜態方法
        print("哈哈哈",x)
    @classmethod
    
def dy2(cls): #類方法:如果在方法中會使用到當前類,那麽就用類方法 print(cls) stu = Student("Tom",18) stu.dyname() Student.dy("s15") Student.dy2()

3.屬性

  方法上有@property

  只有一個self參數

  調用時無需加括號 對象.方法

  對於簡單的方法,當無需傳參且有返回值時可以使用

class Student:
    def __init__(self):
        pass

    @property
    def shuxing(self):
        return 1
obj = Student()
print(obj.shuxing)



2. 嵌套(建模)

python 面向對象(二)