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