亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3.5面向對象與繼承的示例分析

發布時間:2021-07-18 12:04:43 來源:億速云 閱讀:164 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python3.5面向對象與繼承的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

具體如下:

1、編程的方式

Python3.5面向對象與繼承的示例分析

2、面向對象的基本概念

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

3、類的基本概念

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

4、類的定義與調用——簡單代碼舉例

注:建議類名的開頭字母用大寫,在Python中,類內的函數稱作方法,類外的函數還是稱作函數。

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#類
class Person:
  i = 10   #屬性(變量)
  def eat(self):   #方法(函數)
    print("eating...")
  pass

#類的調用
a = Person()
a.eat()

運行結果:

eating...

class Person():
  #對象屬性 構造方法 在實例化對象時會自動調用
  # 實例化的對象就具有name和age兩個屬性
  #self是指當前的對象 self不是關鍵字可以被代替,但是習慣使用self指代當前對象
  def __init__(self,name,age):
    # 通過構造方法聲明了兩個對象屬性
    #對象.name屬性 = name參數
    self.name = name
    self.age = age

  #聲明一個類方法
  def speak(self):
    print("Hello,my name is %s,and I'm %d years old" %(self.name,self.age))

#創建實例對象   會觸發構造方法
people01 = Person("Jack",18)    #通過Person類實例化出一個people對象
print(people01)   #打印Person對象在內存中的地址

print(people01.name,people01.age)    #打印對象的屬性

#給對象添加屬性
people01.sex = "F"
print(people01.sex)

#類方法的調用
people01.speak()

運行結果:

<__main__.Person object at 0x0059C5B0>
Jack 18
F
Hello,my name is Jack,and I'm 18 years old

5、類的方法

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

示例代碼:

#方法——靜態方法
class S():
  #實例(對象)屬性
  def __init__(self,name,age):     #self一般指實例對象
    self.name = name
    self.age = age

  @staticmethod    #用staticmethod裝飾器修飾 表示test2為靜態方法
  def test2():    #不能傳入self 對象的引用
    print("test2...")

s1 = S("Joe",18)
s1.test2()   #通過實例調用靜態方法
S.test2()    #通過類名調用靜態方法


#方法——類方法
class C():
  #類屬性
  country = "China"

  #實例(對象)屬性
  def __init__(self,name,age):
    self.name = name
    self.age = age

  @classmethod    #用classmethod裝飾器修飾 表示test3為類方法
  def test3(cls):   #cls指的是類
    print("test3...",cls.country)    #類方法調用類屬性


c1 = C("Jack",18)
c1.test3()   #通過實例調用類方法
C.test3()    #通過類名調用類方法

運行結果:

test1...
test2...
test2...
test3... China
test3... China

Python3.5面向對象與繼承的示例分析

(1)構造方法:構造方法不能重載(被覆蓋)

在Python中內置,每一個類都有一個默認的不帶參數的構造方法,不需要人為的單獨調用,在調用類的同時就運行了構造方法。

構造方法的作用:初始化數據、創建對象(構造方法的調用)

Python3.5面向對象與繼承的示例分析

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

class Person:
  def __init__(self):
    print("構造方法")
  pass

Person()  #類的調用--創建對象

運行結果

構造方法

帶參數的構造方法:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

class Person:
  # def __init__(self):
  #   print("構造方法")
  def __init__(self,x):
    print("帶參數的構造方法:",x)

  def add(self,x,y):
    print(x+y)

  pass

zs = Person("hello")  #類的調用--創建對象
zs.add(1,2)

 運行結果:

帶參數的構造方法: hello
3

(2)面向對象的思路

Python3.5面向對象與繼承的示例分析

(3)類方法

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#類方法
class Person:
  def eat(self):   #類方法
    print("eating...")
  pass

a = Person()    #類方法調用
a.eat()

運行結果:

eating...

(4)私有方法

只允許在類的內部使用,專門為類服務的。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

class Person:
  def eat(self): # 類方法
    print("eating...")
    self.__sleep() # 調用私有方法

  def __sleep(self):   #私有方法--類的外部不能使用
    print("sleeping...")

pass

b = Person()
b.eat()

運行結果:

eating...
sleeping...

6、屬性

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

示例屬性、類屬性代碼:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#屬性

class a():
  def __init__(self,name,age):
    self.name = name    #實例屬性
    self.age = age

  #類內部使用實例屬性 self.實例屬性名
  def get(self):
    print(self.name)

a1 = a("Jack",18)

#類內部使用實例屬性 self.實例屬性名
a1.get()

#類外部使用實例屬性 對象名.實例屬性名
print(a1.name)

#類屬性  在__init__()方法外聲明
#類內部使用 類名.屬性名 調用
#類外部使用通過 類名.屬性名 或者 對象名.屬性名 方式調用

class b():
  name = "Janne"   #類屬性

  #類內部使用類屬性——類名.屬性名
  def get(self):
    print(b.name)

#類外部使用類屬性 通過 類名.屬性名
print(b.name)

#類外部使用類屬性 通過 對象名.屬性名
b1 = b()
print(b1.name)

#類內部使用類屬性——類名.屬性名
b1.get()

運行結果:

Jack
Jack
Janne
Janne
Janne

(1)類屬性/類變量:在類的外部可以調用

(2)私有變量/私有屬性:只能在類的內部,通過self使用

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#屬性/變量
class Person:
  i = 10     #類屬性/類變量
  __j = 20    #私有屬性/私有變量

  def eat(self): # 類方法
    print("eating...")
    print(self.__j) # 調用私有變量

pass

b = Person()
print(b.i)     #通過引用調用(建議)
print(Person.i)   #可通過類名調用
b.eat()

運行結果:

10
10
eating...
20

Python3.5面向對象與繼承的示例分析

class GirlFriend():
  #聲明對象屬性 通過構造方法
  def __init__(self,name,age,phone,pwd):
    #給對象的屬性(變量名)前面加上 __ 成為了私有的屬性
    self.__name = name
    self.__age = age
    self.__phone = phone
    self.__pwd = pwd

  #通過預留的接口 對私有屬性名進行訪問或修改
  def getInfo(self,pwd):
    if pwd == "1234":
      print("My girlfriend is %s,and she's %d years old,Her telephone number is %d"%(self.__name,self.__age,self.__phone))
    else:
      print("you failed...")

  def setName(self,name):
    self.__name = name   #類內修改私有屬性

gf = GirlFriend("Janne",18,13511112222,"1234")
gf.setName("Malianna")
gf.getInfo("1234")

運行結果:

My girlfriend is Malianna,and she's 18 years old,Her telephone number is 13511112222

Python3.5面向對象與繼承的示例分析

(3)特殊的類屬性

Python3.5面向對象與繼承的示例分析

7、繼承

Python中支持多繼承,作用:復用,不建議使用多繼承(類對象爆炸)、

Python3.5面向對象與繼承的示例分析

繼承示例代碼:

#繼承
#父類
class Animal():
  def __init__(self,name,food,drinks):
    self.name = name
    self.food = food
    self.drinks = drinks

  def eat(self):
    print("%s 愛吃 %s" %(self.name,self.food))

  def drink(self):
    print("%s 愛喝 %s" %(self.name,self.drinks))


#子類
class Dog(Animal):

  def sound(self):
    print("wonf wonf...")

class Cat(Animal):

  def sound(self):
    print("miao miao...")

dogs = Dog("哮天犬","骨頭","雪碧")
dogs.eat()
dogs.drink()
dogs.sound()

print("========================")
cats = Cat("波斯貓","魚","可樂")
cats.eat()
cats.drink()
cats.sound()

運行結果:

哮天犬 愛吃 骨頭
哮天犬 愛喝 雪碧
wonf wonf...
========================
波斯貓 愛吃 魚
波斯貓 愛喝 可樂
miao miao...

示例一:

多繼承

Python3.5面向對象與繼承的示例分析

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#多繼承

class Run3000:
  def run(self):
    print("run 3000")

class Jump3:
  def jump(self):
    print("jump 3")

class Sport(Run3000,Jump3):   #繼承
  pass

sport = Sport()
sport.run()
sport.jump()

運行結果:

run 3000
jump 3

示例二:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

class Father:
  def __init__(self):
    print("father 構造")
  def teach(self):
    print("father teaching")

class Child(Father):
  pass

zs = Child()    #子類繼承與父類,創建子類前先創建父類
zs.teach()

運行結果:

father 構造
father teaching

子類中重寫父類的方法:重寫體現多態

Python3.5面向對象與繼承的示例分析

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

class Father:
  def __init__(self):
    print("father 構造")
  def teach(self):
    print("father teaching")

class Child(Father):
  def teach(self):    #方法重寫
    print("child teaching")

zs = Child()    #子類繼承與父類,創建子類前先創建父類
zs.teach()

運行結果:

father 構造
child teaching

新式類:

如果父類的構造方法帶參數,則需要子類通過super操作去完成調用。

Python3.5面向對象與繼承的示例分析

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

#新式類
class Father(object):
  def __init__(self,i):
    print("father 構造"+ i)
  def teach(self):
    print("father teaching")

class Child(Father):
  def __init__(self):
    super(Child,self).__init__("hello")
  def teach(self):    #方法重寫
    print("child teaching")

zs = Child()    #子類繼承與父類,創建子類前先創建父類
zs.teach()

#運行結果:
father 構造hello
child teaching

運行結果:

father 構造hello
child teaching

多繼承又不完全,父類都有構造方法時,當子類多繼承時,只有一個父類的構造方法被調用。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:ZhengzhengLiu

class Run3000:
  def __init__(self):
    print("run 3000 構造方法")
  def run(self):
    print("run 3000")

class Jump3:
  def __init__(self):
    print("jump 3 構造方法")
  def jump(self):
    print("jump 3")

class Sport(Run3000,Jump3):   #繼承
  pass

sport = Sport()
sport.run()
sport.jump()

運行結果:

run 3000 構造方法
run 3000
jump 3

8、面向對象編程

(1)定義

Python3.5面向對象與繼承的示例分析

(2)示例代碼——人開車

Python3.5面向對象與繼承的示例分析

Python3.5面向對象與繼承的示例分析

關于“Python3.5面向對象與繼承的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南平市| 工布江达县| 泽普县| 湄潭县| 绍兴县| 阳山县| 济阳县| 门头沟区| 铜陵市| 阜宁县| 房山区| 芒康县| 商水县| 南投市| 兴业县| 伊宁市| 瓦房店市| 察隅县| 浦县| 武乡县| 安徽省| 遂平县| 瓮安县| 丰台区| 潼关县| 吴旗县| 炎陵县| 洞口县| 克山县| 浦东新区| 修水县| 胶州市| 北票市| 客服| 云龙县| 龙川县| 南昌市| 拜城县| 汝城县| 台南市| 双牌县|