python-面向物件增強版
阿新 • • 發佈:2018-12-18
class Person: def __init__(self, name, id, gender, birth): self.name = name # 例項變數 物件裡的變數 self.id = id self.gender = gender self.birth = birth p = Person("wusir", "10086", "不詳", "1900-12-15") print(p.birth) p.birth = "1840-5-6" print(p.birth) # 例項變數一般使用 物件.屬性 print(p.name)
class Computer: # 例項方法 def play(self): print("電腦可以掃雷") # 在定義例項方法的時候. 必須給出一個引數 self # 形參的第一個引數, 自動的把物件給傳遞進來 def work(self): # self 是當前類的物件 print(self) print("電腦用來工作") c = Computer() c.work() # 呼叫的時候不需要手動給出self print(c) # 字串操作. 列表操作. 字典操作. 元組操作.....# s = "你好啊" # s.replace("你", "我")
class Person: country = "大清" def __init__(self, name, gender): self.name = name self.gender = gender p = Person("武sir", "未知") p2 = Person("太白", "兩性") Person.country = "中國" # 類變數最好是使用類名來訪問 # p.country = "大清" # 大坑::沒有修改類變數 # p2.country = "大明"print(p.country) # 類變數可以給物件使用 print(p2.country) # 類變數可以給物件使用
class Person: # 例項方法 def chi(self): print("人會吃") @classmethod # 裝飾器, 此時這個方法是一個類方法 def he(cls): # 此時接收到的cls是類名 # print(cls) print("人會喝") # 用物件訪問 # p = Person() # p.he() # 在呼叫類方法的時候. 預設的把類名傳遞給類方法 # print(Person) # 類方法一般用類名去訪問 Person.he() # 類方法
class Person: @staticmethod # 靜態方法 def yue(): print("fsadf") # 靜態方法可以使用物件訪問. 也可以使用類名訪問. 但是一般推薦使用類名訪問 p = Person() p.yue() # 推薦使用類名訪問 Person.yue()
class Person: def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth # 2000 2018 # 年齡 -> 應該是算出來的. 而不是直接儲存 @property # 把一個方法更改成一個屬性, 每次拿屬性的時候都會自動的去執行這個方法 # 方法的返回值就是屬性值 def age(self): # 例項方法 print("我是方法") return 2018 - self.birth p1 = Person("武sir", "未知", 2000) print(p1.age) # 看著像一個變數一樣使用, 實際上這裡是呼叫的一個方法 print(p1.age) # p1.age = 26 # 不可以的, 因為age是一個方法. 不是一個變數
class Person: __qie = "潘潘" # 類變數 def __init__(self, name, mimi): self.name = name self.__mimi = mimi # 私有內容 例項變數 def gaosu(self): print(f"把祕密告訴了太白, 第二天所有人都知道了{self.__mimi}") print(Person.__qie) # 私有的類變數只能在類中呼叫 # return self.__mimi def __yue(self): # 私有的例項方法 print("我要和寶寶約") @staticmethod def __koujiao(): print("韓志遠希望和嫂子一起摳腳") @classmethod def __fangqi(cls): print("和嫂子一起放氣") # p = Person("wusir", "和嫂子的故事") # # print(p.__mimi) # 私有的內容只能在類裡面呼叫 # p.gaosu() # print(Person.__qie) # p = Person("wusir", "嫂子的故事") # p.__yue() # Person.__koujiao()