日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面向对象编程 object oriented programming(OOP)

發(fā)布時間:2024/9/30 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面向对象编程 object oriented programming(OOP) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

面向?qū)ο缶幊?#xff0c;是一種編程方式,這種編程方式需要使用“對象”來實(shí)現(xiàn)

對象的特征

  • 世間萬物皆對象
  • 每個對象都是唯一的
  • 對象具有屬性和行為(對象的行為包括具有的功能及具體的實(shí)現(xiàn))
  • 對象具有狀態(tài)
  • 對象分為類對象和實(shí)例對象兩大類
    類對象:具有相同屬性和行為的實(shí)例對象的抽象
    類對象是實(shí)例對象的模板,實(shí)例對象是由類對象創(chuàng)建出來的

面向?qū)ο缶幊痰拇篌w步驟

1.抽象出類對象
2.抽象出類對象的屬性
3.抽象出類對象的行為(方法)
4.根據(jù)類對象創(chuàng)建實(shí)例對象
5.通過實(shí)例對象訪問屬性和方法

取名規(guī)則

  • 大駝峰規(guī)則:
    每個單詞首字母大寫
  • 小駝峰規(guī)則:
    第一個單詞首字母小寫,其他大寫

定義類對象的語法格式:

class 類名(object):
#屬性與方法
(object)表示該類對象繼承自python內(nèi)置的類對象object,python中所有的類對象都繼承自一個統(tǒng)一的基類:object
例:class SomeClass(object):
....... pass

#初識屬性: class Cat(object):def __init__(self,breed,name,age,health):self.breed = breedself.name = nameself.age = ageself.health = health#初識類的方法:def run(self):print("a")def miao(self):print("b")def eat(self):print("c")

類的方法與函數(shù)的區(qū)別:

方法就是定義在類對象中的函數(shù),方法與函數(shù)的區(qū)別在于:
1.定義方法時。方法的第一個形參表示調(diào)用該方法的實(shí)例對象,第一個形參的名字通常是self。也可以是其他名稱。
2.調(diào)用方法時,系統(tǒng)自動將調(diào)用該方法的實(shí)例對象作為實(shí)參傳遞給第一個形參,第一個實(shí)參會傳遞給第二個形參,第二個實(shí)參會傳遞給第三個形參,以此類推

根據(jù)類對象創(chuàng)建實(shí)例對象的語法格式為:

類名([實(shí)參])

#根據(jù)類對象創(chuàng)建實(shí)例對象 cat = Cat("波斯貓","喵喵",1,"很好") print(cat.breed)

>>>波斯貓
cat.run()
>>>a

實(shí)例屬性

實(shí)例屬性指的是實(shí)例對象所綁定的屬性
綁定實(shí)例屬性(給實(shí)例對象綁定屬性)的方式有兩種:
1.在類對象的內(nèi)部(方法中)
語法格式:self.屬性名 = 屬性值
2.在類對象的外部
python是動態(tài)語言,所以,在實(shí)例對象創(chuàng)建之后,可以對其動態(tài)地綁定屬性。
語法格式:實(shí)例對象.屬性名 = 屬性值
如果指定名稱的實(shí)例屬性已經(jīng)存在,則是對實(shí)例屬性進(jìn)行修改

訪問實(shí)例屬性的方式有兩種:

1.在類對象的內(nèi)部(方法中)
語法格式:self.屬性名
2.在類對象的外部
語法格式:實(shí)例對象.屬性名

class MyClass(object):def __init__(self):self.ia1 = 18def do_sth1(self):print(self.ia1)def do_sth2(self):print(self.ia2)def do_another(self):self.ia2 = 56def do_sth3(self):print(self.ia3) mc = MyClass() mc.do_sth1() #mc.do_sth2()(不能調(diào)用)

>>>18

mc.do_another()#先調(diào)用這個函數(shù) mc.do_sth2()

>>>56

mc.do_sth3()沒有定義,出錯

--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-13-c24edc76ceaa> in <module>() ----> 1 mc.do_sth3()<ipython-input-11-2614780adaa1> in do_sth3(self)9 self.ia2 = 5610 def do_sth3(self): ---> 11 print(self.ia3)12 mc = MyClass()13 mc.do_sth1()AttributeError: 'MyClass' object has no attribute 'ia3' mc.ia3 = 66#外部賦值 mc.do_sth3()

>>>66

屬性值是跟著對象的

mc2 = MyClass() print(mc2.ia3) --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-15-8b6c73677368> in <module>()1 mc2 = MyClass() ----> 2 print(mc2.ia3)AttributeError: 'MyClass' object has no attribute 'ia3' #實(shí)例對象.__dict__(可獲得該實(shí)例對象所綁定的所有屬性及其值得字典) mc.__dict__

>>>{'ia1': 18, 'ia2': 56, 'ia3': 66}

mc2.__dict__

>>>{'ia1': 18}

dir(mc)

['__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__', 'do_another', 'do_sth1', 'do_sth2', 'do_sth3', 'ia1', 'ia2', 'ia3']

dir(mc2)

['__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__', 'do_another', 'do_sth1', 'do_sth2', 'do_sth3', 'ia1']

總結(jié)

以上是生活随笔為你收集整理的面向对象编程 object oriented programming(OOP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。