神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(Python面向对象的编程)
面向對象的程序設計(OOP)
對象(object): 將屬性和方 法封裝在一起。
類(class):
具有相同的屬性和方法的對象集合。
對象是類的實例
子類繼承了父類的全部屬性和方法, 并且也有自己特有的屬性和方法。
繼承描述了類之間的層次關系
聲明類
class?類名:
????類屬性=初值
????方法(參數列表)
訪問類屬性
類名. 類屬性
對象名.類屬性
#類 class Person():#成員變量 類屬性money=100000#成員函數 類方法def say_hello(self):#方法中必須有一個參數self,而且它是參數列表中的第一個參數#由同一個類可以生成很多個對象,每一個對象,都有一個專屬的self,代表這個對象自身print("hello") #創建對象 zhangsan = Person() #訪問對象類屬性成員變量 print(zhangsan.money) #這是一個動態添加的實例屬性,它只屬于zhangsan自己,如果重新創建其他的Person()對象,是沒有這個屬性的 zhangsan.major="computer" print(zhangsan.major) #訪問類屬性成員函數 zhangsan.say_hello() Person.money=12#修改類屬性,所有實例的值都會發生變化。 #刪除對象 del zhangsan構造函數:
(可以省略)
__init__(self, 參數2, 參數3, ....)
在創建對象時,用來完成初始化操作。
當創建對象時,系統會自動調用構造函數。
可以把對成員變量賦初值的語句寫在構造函數中,從而保證每個變量 都有合適的初始值
析構函數:
(可以省略)
__del__( )
在清除對象時,回收和釋放對象所占用的資源。
class Person:#在Python中,構造函數和析構函數也可以省略。#構造函數:在創建對象時,用來完成初始化操作。#當創建對象時,系統會自動調用構造函數。#gender="男"默認初值def __init__(self,name,age,gender="男"):self.name=nameself.age=ageself.gender=gender#析構函數:在清除對象時,回收和釋放對象所占用的資源def __del__(self):print("Bye bye from",self.name)def printInfo(self):print("姓名:",self.name,"年齡:",self.age,"性別:",self.gender)zhangsan = Person("張三",18) lisi = Person("李四",19,"女") zhangsan.printInfo() lisi.printInfo del zhangsan del lisi靜態方法和類方法
類方法
可以通過類名或者對象調用。
不能訪問實例屬性,但可以訪問類屬性(類聲明時就有的)
class?類名:
????@classmethod
????def?類方法名(cls,):
????????方法體
靜態方法
可以通過類名或者對象名調用,
不能訪問實力屬性,也不能直接訪問類屬性,但是可以通過類名引用類屬性
class?類名:
????@staticmethod
????def?類方法名():
????????方法體
公有變量和私有變量
公有變量:可以在類的外部訪問
保護變量:值允許其本身和子類進行訪問
私有變量:不允許在類的外部訪問
__XXX:私有變量
_XXX:保護變量
__XXX__:專有變量,方法
繼承:
子類能夠繼承父類中所有非私有的成員變量和成員函數
class?子類名(父類名)
????類屬性=初值
????方法(參數列表)
class Person1():money=10000def syahello(self):print("hello1234567") class Teacher(Person1):pass amy = Teacher() print(amy.money) amy.syahello()面向過程的程序設計(POP)
個人公眾號
總結
以上是生活随笔為你收集整理的神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(Python面向对象的编程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝还信用卡额度不足怎么办
- 下一篇: 神经网络与深度学习——TensorFlo