學習python中的class類

# 開發(fā)人員: hanhan丶

# 開發(fā)時間: 2020/11/6 10:14

# class Student:? # Student為類的名稱(類名),由一個多個單詞組成玄柠,每個單詞的首字母大寫休涤,其余小寫

#? ? native_pace = '吉林'? ? # 直接寫在類里的變量咱圆,稱為類屬性

#? ? #? 初始化方法

#? ? def __init__(self,name,age):

#? ? ? ? self.name = name

#? ? ? ? self.age = age

#? ? #? 實例方法

#? ? def fun(self):? ? # 實例方法? 在類里定義的稱為方法,在類外定義的稱為函數(shù)

#? ? ? ? print('hello,實例方法')

#? ? #? 靜態(tài)方法

#? ? @staticmethod

#? ? def fun1():

#? ? ? ? print('hello,靜態(tài)方法')

#? ? #? 類方法

#? ? @classmethod

#? ? def fun2(cls):

#? ? ? ? print('hello,類方法')

#? 創(chuàng)建student類的對象

# stu = Student('徐晗',18)? ? # stu就是實例對象

# print(stu)

# stu.fun()? ? # 調用類對象中的方法? hello,實例方法

# print(stu.name)? ? # 徐晗

# Student.fun(stu)? ? # hello,實例方法? 與上面23行代碼功能相同,都是去調fun方法闷堡,不過這個要傳實參

# 類屬性的使用方式

# print(Student.native_pace)? ? # 吉林

# stu = Student('張三',18)

# stu1 = Student('李四',50)

# print(stu.native_pace)? ? # 吉林

# print(stu1.native_pace)? ? # 吉林

# stu.native_pace = '琿春'

# stu1.native_pace = '琿春'

# print(stu.native_pace)? ? # 琿春? ? 打出來是更改后的值

# print(stu1.native_pace)? ? # 琿春? ? 打出來是更改后的值

# 類方法的使用方式

# Student.fun2()? ? # hello,類方法? 不需要傳入實參

# 靜態(tài)方法的使用方式

# Student.fun1()? ? # hello,靜態(tài)方法

# 動態(tài)綁定屬性和方法

# class Student:

#? ? def __init__(self, name, age):

#? ? ? ? self.name = name

#? ? ? ? self.age = age

#

#? ? def eat(self):

#? ? ? ? print(self.name, '在吃飯')

#

#

# stu = Student('張宇航', 28)

# Student.eat(stu)? ? # 張宇航 在吃飯

# stu.gender = '女'

# # print(stu.gender)

# def fun():

#? ? print('我是動態(tài)綁定的方法')

# stu.fun = fun

# stu.fun()? ? # 我是動態(tài)綁定的方法

# 面向對象中的封裝? 提高代碼的安全性? ? “__”的用法

# class Car:

#? ? def __init__(self,brand,price):

#? ? ? ? self.brand = brand

#? ? ? ? self.__price = price? ? # __price 不希望在class外部訪問時隘膘,加__

#? ? def strat(self):

#? ? ? ? print(self.brand)? ? # 開車

#? ? ? ? print(self.__price)? # 50000

# ve = Car('開車',50000)

# ve.strat()

# print(ve.brand)? ? # 開車

# print(ve.__price)? ? # AttributeError: 'Car' object has no attribute '__price'? 在外部訪問不到

# print(dir(ve))? ? # ve中的所有實例方法對象['_Car__price', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'brand', 'strat']

# print(ve._Car__price)? ? # 50000? 這樣就可以在外部訪問到了? 但是使用__的意思就是不想讓你在外部訪問,所以不推薦你使用這個去訪問

# 面向對象中的繼承? 提高代碼的復用性

# class person(object):

#? ? def __init__(self,name,age):

#? ? ? ? self.name = name

#? ? ? ? self.age = age

#? ? def info(self):

#? ? ? ? print(self.name,self.age)

# class student(person):

#? ? def __init__(self,name,age,grade):

#? ? ? ? super().__init__(name,age)

#? ? ? ? self.grade = grade

# class teacher(person):

#? ? def __init__(self,name,age,teacherage):

#? ? ? ? super().__init__(name,age)

#? ? ? ? self.teacherage = teacherage

# stu = student('張宇航',23,'jquery')

# tea = teacher('徐晗',23,1)

# stu.info()

# tea.info()

#面向對象中的多繼承? 不能使用super()方法

# class a(object):

#? ? def __init__(self,name):

#? ? ? ? self.name = name

#? ? def ainfo(self):

#? ? ? ? print(self.name)

# class b(object):

#? ? def __init__(self,age):

#? ? ? ? self.age = age

#? ? def binfo(self):

#? ? ? ? print(self.age)

# class c(a,b):

#? ? def __init__(self,name,age,gender):

#? ? ? ? a.__init__(self,name)

#? ? ? ? b.__init__(self,age)

#? ? ? ? self.gender = gender

#? ? def cinfo(self):

#? ? ? ? print(self.gender)

# d = c('徐晗',20,'男')

# d.ainfo()

# d.binfo()

# d.cinfo()

# 面向對象中的方法重寫

# class person(object):

#? ? def __init__(self,name,age):

#? ? ? ? self.name = name

#? ? ? ? self.age = age

#? ? def info(self):

#? ? ? ? print(self.name,self.age)

# class student(person):

#? ? def __init__(self,name,age,grade):

#? ? ? ? super().__init__(name,age)

#? ? ? ? self.grade = grade

#? ? def info(self):? ? # 方法重寫

#? ? ? ? super().info()? ? # 調用父class中的info()? 張宇航23

#? ? ? ? print(self.grade)? ? #? jquery

# class teacher(person):

#? ? def __init__(self,name,age,teacherage):

#? ? ? ? super().__init__(name,age)

#? ? ? ? self.teacherage = teacherage

#? ? def info(self):? ? # 方法重寫

#? ? ? ? super().info()? ? # 徐晗23

#? ? ? ? print(self.teacherage)? # 1

# stu = student('張宇航',23,'jquery')

# tea = teacher('徐晗',23,1)

# stu.info()

# tea.info()

# 面向對象中的object類

# class student(object):

#? ? def __init__(self,name,age):

#? ? ? ? self.name = name

#? ? ? ? self.age = age

#? ? def __str__(self):

#? ? ? ? return '我的名字是{0}杠览,年齡是{1}'.format(self.name,self.age)

# stu = student('xuhan',20)

# print(dir(stu))? ? # ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'age', 'name']

# print(stu)? ? #? ? 默認調用__str__()這個方法 我的名字是xuhan弯菊,年齡是20

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市踱阿,隨后出現(xiàn)的幾起案子管钳,更是在濱河造成了極大的恐慌英染,老刑警劉巖勋眯,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搓扯,死亡現(xiàn)場離奇詭異查剖,居然都是意外死亡缤言,警方通過查閱死者的電腦和手機飒筑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門识窿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來礼预,“玉大人超营,你說我怎么就攤上這事鸳玩。” “怎么了演闭?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵不跟,是天一觀的道長。 經常有香客問我米碰,道長窝革,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任吕座,我火速辦了婚禮虐译,結果婚禮上,老公的妹妹穿的比我還像新娘米诉。我一直安慰自己菱蔬,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布史侣。 她就那樣靜靜地躺著拴泌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惊橱。 梳的紋絲不亂的頭發(fā)上蚪腐,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音税朴,去河邊找鬼回季。 笑死家制,一個胖子當著我的面吹牛,可吹牛的內容都是我干的泡一。 我是一名探鬼主播颤殴,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鼻忠!你這毒婦竟也來了涵但?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帖蔓,失蹤者是張志新(化名)和其女友劉穎矮瘟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塑娇,經...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡澈侠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了埋酬。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哨啃。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖写妥,靈堂內的尸體忽然破棺而出棘催,到底是詐尸還是另有隱情,我是刑警寧澤耳标,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站邑跪,受9級特大地震影響次坡,放射性物質發(fā)生泄漏。R本人自食惡果不足惜画畅,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一砸琅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轴踱,春花似錦症脂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雳灵,卻和暖如春棕所,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悯辙。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工琳省, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迎吵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓针贬,卻偏偏與公主長得像击费,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子桦他,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內容