Python中的類和對象

1 類:具有相同屬性和方法的對象的集合朦前;

 對象:萬物皆對象介杆;
2..class 類名:
屬性
方法
3.class Preson:
 def eat(self):
      print("正在吃飯");
  def sleep(self):
      print("正在睡覺")
4.類的命名

首字母大寫

    以大小寫分割單詞

    不使用下劃線“_”
5.創(chuàng)建對象

屬性寫在類外的情況韭寸,就是通過對象.屬性春哨,對象.方法()的方法調(diào)用

對象的三要素:屬性(對象是什么)、方法(對象能做什么)恩伺、事件(對象如何響應(yīng))

相互關(guān)系:類是對象的抽象赴背,對象是類的實例,類是一種抽象事物的分類,對象是一種實例凰荚;

6.屬性相對于類來說屬于全局燃观,每個方法都可以調(diào)用;

4.屬性分歸屬 類屬性 對象屬性

對象屬性的兩種創(chuàng)建方式:

self 對象的載體

def int(self,name,age):
self.name=name;
self,age=age;

創(chuàng)建對象屬性

  1. 對象名.屬性 賦值的形式
  1. init(self,name,age) 在創(chuàng)建類的實例的時候便瑟,回自動調(diào)用這個方法缆毁,一般用戶對實例屬性初始化;

class Person:
def init(self,name,age):
self.name=name;
self.age=age;
print("執(zhí)行init時就被調(diào)用了")
p=Person("tom",22)
print(p.name)
print(p.age)

執(zhí)行init時就被調(diào)用了
tom
22

  1. new(cls,agrs,*kwargs)

    在類調(diào)用init方法時到涂,new方法決定是否要用init方法脊框,因為new可以調(diào)用其他類的方法,或者返回別的對象來

作為本類的實例践啄;

new()方法的特性:

new()方法時在類準(zhǔn)備將自身實例化時調(diào)用缚陷;

new()方法始終都是類的靜態(tài)方法,即使沒有被加上靜態(tài)方法裝飾器往核;

class A(object):
def init(self,args,kwargs):
print( "init &&&& %s" % self.class)
def new(cls,
args,kwargs):
print( "new &&&& %s" % cls)
return object.new(cls,
args,
*kwargs)
a=A()

new &&&& <class 'main.A'>
init &&&& <class 'main.A'>

8.對象屬性 私有和共有

類屬性 公有和私有

 對屬性進(jìn)行私有化 __屬性,外部訪問不到嚷节,也不可對屬性進(jìn)行賦值

class Person(object):
def init(self, name):
self.name = name
self._title = 'Mr'
self.__job = 'Student'
p = Person('Bob')
print (p.name)
Bob
print (p._title)
Mr
print (p.__job)

  1. 封裝 2步

(1)把屬性變成私有

(2)用set()和get()函數(shù)寫一個方法

class Person:
def init(self,name,age):
self.name=name
self.__age=age
def getAge(self):
return self.__age
def setAge(self, age):
if age<0 or age>100:
self.__age=18;
else:
self.__age=age
def showtime(self):
print("姓名:{}".format())
p=Person("as",20);
print(p.getAge())
p.setAge(10)
print(p.getAge())

20
10
11.def str() 一個類的實例變成str,需要用特殊方法str()

class Person(object):
def init(self, name, gender):
self.name = name
self.gender = gender

p = Person('Bob', 'male')
print (p)

<main.Person object at 0x02171270>

class Person(object):
def init(self, name, gender):
self.name = name
self.gender = gender
def str(self):
return '(Person: %s, %s)' % (self.name, self.gender)
p = Person('Bob', 'male')
print (p)

(Person: Bob, male)

12.公有方法和私有方法聂儒;

私有方法在方法前加兩個下劃線:def __text():
  1. 自動銷毀方法:del(): 當(dāng)對象沒有引用的時候,或程序結(jié)束的時候硫痰,程序自動調(diào)用del()

class Person:
def init(self,name,age):
self.name=name
self.age=age
def del(self):
print("對象張三被銷毀")
zhangsan=Person("張三",20)
zhangsan.del()

對象張三被銷毀
對象張三被銷毀

14.測試對象有多少次引用

import sys

t=T()

sys.getrefcount(t)返回2  從2開始

import sys
class Person:
def init(self,name,age):
self.name=name;
self.age=age;
zhangsan=Person("張三",20)
print(sys.getrefcount(zhangsan))

2

15.訪問私有屬性可以通過 對象.類名_屬性訪問到(不建議用這個方法)

16.id()函數(shù) 查看對象的內(nèi)存地址衩婚;

17.類屬性:屬于類成員,對象共有的效斑;

類方法:cls 表明是 類

              在方法上添加 @classmethod裝飾器

              def class_method(cls):

              可以通過類方法調(diào)用類屬性非春,也可以通過對象調(diào)用類屬性;

修改類屬性的2種方式:

              1.類名.類屬性=... 
              2.實例對象__class__類屬性=...

靜態(tài)方法:前面加@staticmethod缓屠,靜態(tài)方法可以加參數(shù)奇昙,與類和對象都沒有關(guān)系,也可以通過類和對象調(diào)用敌完;

class Person:
def init(self,name,age):
self.name=name;
self.age=age;

def showInfo(self):
    print("姓名{0} 年齡{1}".format(self.name, self.age))

@staticmethod
def goHome(self,name, by):
    print(name, "回家...", by)
  1. dir() dir 展示一個類/對象的內(nèi)部屬性和函數(shù);

dir(zhangsan);
zhangsan.dir()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末储耐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滨溉,更是在濱河造成了極大的恐慌什湘,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晦攒,死亡現(xiàn)場離奇詭異闽撤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脯颜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門哟旗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事热幔±稚瑁” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵绎巨,是天一觀的道長近尚。 經(jīng)常有香客問我,道長场勤,這世上最難降的妖魔是什么戈锻? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮和媳,結(jié)果婚禮上格遭,老公的妹妹穿的比我還像新娘。我一直安慰自己留瞳,他們只是感情好拒迅,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著她倘,像睡著了一般璧微。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硬梁,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天前硫,我揣著相機(jī)與錄音,去河邊找鬼荧止。 笑死屹电,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跃巡。 我是一名探鬼主播危号,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓷炮!你這毒婦竟也來了葱色?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤娘香,失蹤者是張志新(化名)和其女友劉穎苍狰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烘绽,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡淋昭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了安接。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翔忽。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出歇式,到底是詐尸還是另有隱情驶悟,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布材失,位于F島的核電站痕鳍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏龙巨。R本人自食惡果不足惜笼呆,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旨别。 院中可真熱鬧诗赌,春花似錦、人聲如沸秸弛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽递览。三九已至奥喻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間非迹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工纯趋, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留憎兽,地道東北人。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓吵冒,卻偏偏與公主長得像纯命,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子痹栖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容