1. 程式人生 > >18.07.23(初識面向對象)

18.07.23(初識面向對象)

soup attribute 基本 ict 操作類 首字母 相同 one 進行

類:具有相同屬性和技能的食物 語法:class 類名: 類名的首字母大寫 例:class Person:

對象(實例):具體的某一事物;具體類的表現;具體的實實在在的一個實例

實例化:類---->對象的過程

例:

class Preson:
soup = "有靈魂"
language = "語言"
mind = "有思想"

def __init__(self, name, sex, age): #self:內存空間
self.name = name
self.sex = sex
self.age = age

def eat(self):
print("%s在吃飯" % self.name)

def sleep(self):
print("%s在睡覺" % self.name)

def work(self):
print("%s在工作" % self.name)

1.類名角度

(1)調用類中的靜態變量

方法一: 函數__dict__ 只能進行查找 不能進行增刪改

例:

print(Preson.__dict__)
結果:{‘__module__‘: ‘__main__‘, ‘soup‘: ‘有靈魂‘, ‘language‘: ‘語言‘, ‘mind‘: ‘有思想‘, ‘__init__‘: <function Preson.__init__ at 0x000001E43FCD1A60>, ‘eat‘: <function Preson.eat at 0x000001E43FCD1AE8>, ‘sleep‘: <function Preson.sleep at 0x000001E43FCD1B70>, ‘work‘: <function Preson.work at 0x000001E43FCD1BF8>, ‘__dict__‘: <attribute ‘__dict__‘ of ‘Preson‘ objects>, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘Preson‘ objects>, ‘__doc__‘: None}

例:

print(Preson.__dict__["soup"])  ==>有靈魂

方法二: " . " 進行增刪改查

例:

print(Preson.soup)
Preson.money = "運用貨幣"
Preson.language = "使用語言"
del Preson.soup
print(Preson.__dict__)
結果:有靈魂
{‘__module__‘: ‘__main__‘, ‘language‘: ‘使用語言‘, ‘mind‘: ‘有思想‘, ‘__init__‘: <function Preson.__init__ at 0x000002194CF21A60>, ‘eat‘: <function Preson.eat at 0x000002194CF21AE8>, ‘sleep‘: <function Preson.sleep at 0x000002194CF21B70>, ‘work‘: <function Preson.work at 0x000002194CF21BF8>, ‘__dict__‘: <attribute ‘__dict__‘ of ‘Preson‘ objects>, ‘__weakref__‘: <attribute ‘__weakref__‘ of ‘Preson‘ objects>, ‘__doc__‘: None, ‘money‘: ‘運用貨幣‘}

(2)調用類中的方法 基本不用

2.對象角度

(1)對象操作類中的靜態變量只能查

例:

print(p.soup)    ==>有靈魂

(2)對象操作類中的方法 第一個參數self不用傳

例:

p.work()    ==>小白在工作

3.實例化對象/實例/對象 :類名+()的過程叫實例化過程(創建一個對象的過程)

例:

p = Preson("小白", "男", 24)
print(p.__dict__)
結果:{‘name‘: ‘小白‘, ‘sex‘: ‘男‘, ‘age‘: 24}

(1).類名+()產生一個實例(對象.對象空間)

(2).自動執行類中的__init__方法,將對象空間傳給__init__的self參數

(3).給對象封裝屬性

18.07.23(初識面向對象)