物件導向 類,屬性,str類 及其特性

2021-09-25 06:18:43 字數 4417 閱讀 3612

物件導向

面向過程:側重於怎麼做

物件導向:側重於誰來做

1.確定職責–要做的事情(方法)

2.物件內部封裝不同方法(多個)

3.不同物件呼叫不同方法

類:相當於模板,所有的物件都是根據這個模板建立出來的

類只需要有乙個,物件可以有多個

類:屬性(資訊)和方法(你能幹什麼)

物件:self,那乙個物件呼叫的方法,就是對那個物件的呼叫

1.類名

2.屬性

3.方法

1.如何定義類

2.建立物件的過程稱為例項化,把抽象的物件具體化

#類 模板

class dog()

##屬性:類中變數

name = 『tom』

age=3

def eat(self):

print(『小狗吃了』)

def sleep(self):

print(『小狗睡了』)

##例項化:通過類建立物件

dog1=dog()

dog2=dog()

dog1.eat()

dog1.sleep()

類和屬性

class people():

#構造方法

definit(self):

print(『self』,self)

p1 = people()

print(『p1』,p1)

封裝

物件導向程式設計的三大特性:封裝性,多型性,繼承性

#封裝就是將同一型別的東西放在一起,通過self.***去呼叫

class people():

def __init__(self,name,age):

#類的self實質就是物件本身

#self是物件,name是屬性,self.name就是將物件和屬性封裝在一起

self.name = name

self.age = age

def run(self):

print('%s正在跑步' %(self.name))

p1=people(『阿呆』,3)

p1.run()

p2=people(『哥哥』,5)

p2.run()

繼承

定義乙個類,可以從現有的某個類繼承

新的類稱為子類,擴充套件類(subclass),被繼承的稱為父類,基類,超類(baseclass,superclass)

##如何實現繼承

##繼承的工作機制是什麼

class father():

definit(self,name,age):

#構造方法在例項化物件時自動實現

self.name = name

self.age = age

def eat(self):

print('%s正在吃' %(self.name))

def sleep(self):

print( '%s正在睡' %(self.name))

class son(father):

def eat(self):

father.eat(self)

print((self.son).eat)

print('%s倒立吃飯' %(self.name))

#pass

father = father(『老李李』,65)

son =(『老李』,38)

#son.eat()

##例項化物件預設執行構造方法,子類沒有的方法會繼承父類

##呼叫父類方法

son.eat()

##繼承擁有傳遞性,子類可以繼承父類的屬性和方法

class animal():

def eat(self):

print('eat')

def drink(self):

print('drink')

def sleep():

print('sleep')

class cat(animal):

def yell(self):

print('喵')

class jiqimao(cat):

def speak(self):

print('i can speak')

jim = jiqimao()

jqm.speak()

jqm.sleep()

class a():

def test(self):

print('a --- test 方法')

def demo(self):

print('b---demo方法')

class b():

def test(self):

print('a --- test 方法')

def demo(self):

print('b---demo方法')

class c():

def test(self):

print('a --- test 方法')

def demo(self):

print('b---demo方法')

c= c()

c.test()

c.demo1()

str方法

返回值必須為字串

class people():

def __init__(self,name):

self.name = name

def __str__(self):

##必須返回乙個字串

return '我是%s' %(self.name)

p1 = people(『老李』)

print(p1)

class jiaju():

def __init__(self,name,area):

self.name = name

self.area = area

def __str__(self):

return '我是%s,area is %.2f ping mi' %(self.name,self.area)

class house():

def __init__(self,type,area):

self.type = type

self.area = area

self.free_area = area

self.item_list =

def __str__(self):

return('house type: %s \n area:%.2f[shengyu: %.2f] \n jiaju:%s ') %(self.type,self.area,self.free_area,self.item_list)

def add_item(self,item):

if item.area > self.free_area:

print('%s area is too big,can not input' %item.name)

return false

self.free_area -= item.area

bed = jiaju('bed',4)

chest = jiaju('chest',2)

table = jiaju('table',1.5)

myhouse = house('er shou fang',2)

myhouse.add_item(bed)

myhouse.add_item(table)

print(myhouse)

多型性

開源(對擴充套件開放):允許子類方法重寫

閉源(對修改封閉):不修改,直接繼承父類方法

class student():

def get_score(self):

print(『獲取學生成績』)

class chinese():

def get_score(self)

print(『獲取語文成績』)

def math():

def get_score(self):

print(『獲取數學成績』)

student1 =student()

student 2 =chinese()

student3 = math()

student1.get_score()

student2.get_score()

student3.get_score()

Python物件導向 例項屬性和類屬性

由於python是動態語言,根據類建立例項可以任意繫結屬性。給例項繫結屬性的方法是通過例項變數,或者通過self變數 class student object def init self,name self.name name s student jeff print s.name jeff當我們定...

物件導向(三) 例項屬性與類屬性

例項屬性和類屬性 1 概念 2 區別 1 概念上 2 宣告位置 3 訪問方式 4 修改形式 定義學生類,屬性 name,age,gender class student gender 男 類屬性 公共資源 def init self,name,age self.name name self.age ...

Python物件導向之類屬性類方法靜態方法

使用物件導向開發時,第一步是設計類 當使用 類名 建立物件時,會自動執行以下操作 1.為物件在記憶體中分配空間 建立物件 2.為物件的屬性 設定初始值 初始化方法 init 物件建立後,記憶體中就有了乙個物件的實實在在的存在 例項 因此通常也會把 1.建立出來的物件叫做類的例項 2.建立物件的動作叫...