日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

面向?qū)ο?/span>

 印度阿三17 2019-07-07
1、面向過程編程
  核心是"過程"二字,過程指的是解決問題的步驟,即先干什么再干什么
  基于該思想編寫程序就好比在編寫一條流水線,是一種機械式的思維方式

  優(yōu)點:復(fù)雜的問題流程化、進而簡單化
  缺點:可擴展性差

2、面向?qū)ο?br/>   核心"對象"二字,對象指的是特征與技能的結(jié)合體,
  基于該思想編寫程序就好比在創(chuàng)造一個世界,你就是這個世界的上帝,是一種
  上帝式的思維方式

  優(yōu)點:可擴展性強
  缺點:編程的復(fù)雜度高于面向過程
   
重點:面向?qū)ο蟮暮诵捏w現(xiàn)是將數(shù)據(jù)和處理數(shù)據(jù)的程序封裝到對象中
'''

# 函數(shù)與方法:都是解決問題的功能
# 函數(shù):通過函數(shù)名直接調(diào)用
# 方法:通過附屬者.語法來調(diào)用

# 變量:通過變量名訪問變量值
# 屬性:通過附屬者.語法來訪問變量值

名稱空間操作

# 所有能產(chǎn)生名稱空間對應(yīng)的對象(存放地址的變量)有__dict__值

# __dict__指向的就是附屬對象的名稱空間
import re
print(re.__dict__)

re.__dict__['name'] = 're模塊'
print(re.__dict__['name'])

re.__dict__['action'] = lambda x: x
print(re.__dict__['action'](1000))


def fn():
   pass
print(fn.__dict__)

fn.name = 'fn函數(shù)'
print(fn.name)

def test():
   print("可以成為fn功能的函數(shù)")
fn.action = test
fn.action()

類與對象的概念

# 類:具有相同特征與行為個體集合的抽象
# 對象:有特征、行為的具體個體。就是類的具體體現(xiàn)

# 區(qū)別:兩個人同時思考一個名字,想到的一定是同一個物體,就一定是對象,反之一定是類

語法

# 類的聲明:
'''
class 類名: # class定義類語法的關(guān)鍵字
  pass
'''

# 對象的產(chǎn)生: 對象的實例化
'''
對象1 = 類名()
對象2 = 類名()
對象3 = 類名()
'''

# 類與對象都有自己獨立的名稱空間,每一個被實例化出來的對象,名稱空間也是各自獨立
# 所以類與對象都能額外添加 屬性(變量) 和 方法(函數(shù))

# 重點:類一旦被加載(隨著所屬文件的加載就加載),就會進入類的內(nèi)部執(zhí)行類中的所有代碼

對象查找屬性的順序

class People:
   # 類自帶(不同在外界額外添加)的屬性與方法
   identify = '人類'
   def sleep(self):
       print('睡覺')
   
p1 = People()
p2 = People()
p1.identify = '新人類'
print(p1.identify)  # 訪問自己的
p1.__dict__.clear()  # 刪除自己的后
print(p1.identify)  # 訪問類的
print(p2.identify)  # p2沒有自己的,訪問類的
# 重點:屬性的訪問順序:優(yōu)先加載自身的名字,如果沒有再考慮類的

對象獨有的名稱空間: 在產(chǎn)生對象時就賦初值

class Student:
   def __init__(self, stu_name, sex):
       self.name = stu_name
       self.sex = sex  # 通常建議參數(shù)名與新增的屬性名同名

stu = Student('Bob', 'male')  # 實例化對象
print(stu.name, stu.sex)

'''
# __init__方法會在實例化對象時被調(diào)用
# 1.會為實例化的對象形成空的名稱空間
# 2.就是一個方法,可以被傳參,在 類名(實參) 這種方式下調(diào)用并傳參 __init__(self, 形參)
# 3.第一個self就是要產(chǎn)生的當前對象
# 重點:在方法內(nèi)部,形參拿到了實參值,利用self.屬性名 = 形參 = 實參值,對對象的名稱空間添加屬性
'''

類中方法的第一個默認參數(shù):對象方法

class A:
   # 對象方法
   def test(self, num):
       pass
a = A()

# 調(diào)用方法
# 二級優(yōu)化
a.test(10)
# 一級優(yōu)化
A.test(a, 10)
# 實現(xiàn)原理
A.__dict__['test'](a, 10)

# 總結(jié):對象a傳遞給self,數(shù)字10傳遞給num
# 重點:方法的第一個參數(shù)一定是調(diào)用該方法的對象

類中@classmethod修飾的方法:類方法

class Tool:
   @classmethod
   def add(cls, n1, n2):  # 統(tǒng)一類與對象都可以調(diào)用類方法,一定有默認傳入第一個參數(shù)
       return n1 n2
   
# 建議
Tool.add(10, 20)  # 默認第一個傳入自身 - Tool

# 不建議
tool = Tool()
tool.add(100, 200)   # 默認第一個傳入自身所屬類 - tool.__class__
來源:https://www./content-4-306001.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多