一文讓你掌握Python物件導向的程式設計思維

2022-09-19 06:48:08 字數 4267 閱讀 9841

1、萬物皆物件

2、物件:用來描述客觀事物的乙個 實體 ,由一組 屬性 和 方法 構成

3、屬性:物件具有的各種特徵,每個物件的每個屬性都有特定值

4、方法:物件執行的操作

5、類:物件的分類,分類就是認識物件的過程

很多人學習蟒蛇,不知道從何學起。

很多人學習尋找python,掌握了基本語法之後,不知道在**案例上手。

很多已經可能知道案例的人,卻不怎麼去學習更多高深的知識。

qq群:

101677771歡迎加入,一起討論學習

物件導向設計的規則

1、圖書類: 屬性:圖書編號、書名、書的作者、上架日期、借出狀態

功能(方法):借出和歸還

2、銀行卡類: 屬性:卡號、銀行卡名稱、密碼、姓名、餘額

方法:登入、存款、取款

# 思路:

# 定義類 --> 人類

# 編寫類的屬性:姓名、年齡、id(身份證號)、手機號

# 編寫類的方法:吃、喝、玩、睡、上班

class person:

# 編寫屬性(變數)

name = "楊冪"

age = 30

gender = '女'

# 我不想用指定屬性,我想自己建立姓名

def set_param(self, name): # age、gender一樣操作

self.name = name

print(f'姓名:')

# 如屬性很多,那就很麻煩,我們可以使用 def __init__()去構造

# 編寫方法(函式),無參

def eat(self):

print('eating')

def drink(self):

print('drinking')

def play(self):

print('playing')

def sleep(self):

print('sleeping')

@classmethod

def work(self):

print('working')

# 物件的構造

ym = person()

# 呼叫方法

ym.sleep()

ym.work()

zs = person()

zs.set_param('張三')

# 類訪問方法,需要新增乙個裝飾器@classmethod

person.eat()

# def __init__() 去構造屬性

class person:

def __init__(self, name, age, gender):

self.name = name

self.age = age

self.gender = gender

# 編寫方法(函式),有參

def eat(self, food):

print(f'在吃')

def drink(self, sthing):

print(f'在喝')

def play(self):

print(f'在玩')

def sleep(self):

print(f'在睡覺')

def work(self):

print(f'正在工作')

def info(self): # 輸出資訊

print("該人的資訊:", self.name, self.age, self.gender)

# 構造物件輸出資訊

lihaoran = person(name='李浩然', age=32, gender='男')

# 呼叫方法

"""封裝(屬性私有化)"""

class student:

def __init__(self, name, age, xh, id, address):

self.name = name # 預設公共屬性(允許外界讀取+修改)

self.age = age # 預設公共屬性(允許外界讀取+修改)

self.xh = xh

self.__id = id # 私有屬性(不允許外界讀取+修改)

self.__address = address # 私有屬性(不允許外界讀取+修改)

# 私有屬性可以被檢視,但是不能被修改 ---> get方法

def getid(self):

return self.__id

def setaddress(self, newadress):

self.__address = newadress

def info(self):

print('學生的基本資訊:', self.name, self.age, self.xh, self.__id, self.__address)

zhangsan = student('tom', 18, '001', '340104555555555555', '南京')

# 私有屬性(不允許外界讀取+修改),如果想檢視get方法

# print(zhangsan.id) # 沒有getid-->報錯attributeerror: 'student' object has no attribute 'id'

read_student_id = zhangsan.getid()

print(f'檢視張三id:')

zhangsan.info()

zhangsan.setaddress("合肥")

print(f'在吃')

def drink(self, sthing):

print(f'在喝')

def play(self):

print(f'在玩')

def sleep(self):

print(f'在睡覺')

# 繼承

class dog(animal):

def __init__(self, name, color, age):

super().__init__(name, color) # super()呼叫父類物件

self.age = age # 屬性有個性(構造屬性重寫)

def kaijia(self):

print(f"看家")

hashiqi = dog('哈士奇', '黑白', 6)

hashiqi.eat('骨頭')

# 多型 方法上個性(構造方法重寫) 獨特個性

hashiqi.kaijia()

class cat(animal):

def __init__(self, name, color):

super().__init__(name, color) # super()呼叫父類物件

cat = cat('波斯貓', 'red')

cat.eat('魚')

# cat.kaijia() 因為貓不會看家,這是狗的獨特個性

一文讓你熟練掌握Linux的ncat nc 命令

ncat或者說nc是一款功能類似cat的工具,但是是用於網路的。它是一款擁有多種功能的cli工具,可以用來在網路上讀 寫以及重定向資料。它被設計成可以被指令碼或其他程式呼叫的可靠的後端工具。同時由於它能建立任意所需的連線,因此也是乙個很好的網路除錯工具。ncat nc既是乙個埠掃瞄工具,也是一款安全...

一文掌握 TensorFlow 基礎

在後面的課程中我們將主要使用 tensorflow 來實現各種模型的應用,所以在本節我們先來看一下 tensorflow 的基礎知識點。tensorflow 是乙個深度學習庫,由 google 開源,可以對定義在 tensor 張量 上的函式自動求導。tensor 張量 意味著 n 維陣列,flow...

用案例讓你一文搞懂python網路爬蟲

很久以前寫了一篇爬蟲的文章,把它放在csdn上 livan1234 沒想到點選量竟然暴漲,足以看到大家在資料獲取方面的需求,爬蟲技術現在已經非常普遍,其用途也非常廣泛,很多牛人在各個領域做過相關的嘗試,比如 1 爬取汽車之家資料,利用論壇發言的抓取以及nlp,對各種車型的車主做畫像。2 抓取各大電商...