欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python面向對象基礎之常用魔術方法

 更新時間:2021年05月13日 14:35:21   作者:神的孩子都在歌唱  
這是我聽老師上課做的筆記,文中有非常詳細的代碼示例及注釋,對新手及其友好,對正在學習python的小伙伴們也很有幫助,需要的朋友可以參考下

一、類和對象

通俗理解:類就是模板,對象就是通過模板創(chuàng)造出來的物體

類(Class)由3個部分構成:

類的名稱: 類名

類的屬性: 一組數據

類的方法: 允許對進行操作的方法 (行為)

二、魔法方法

在python中,有一些內置好的特定的方法,方法名是“__xxx__”,在進行特定的操作時會自動被調用,這些方法稱之為魔法方法。下面介紹幾種常見的魔法方法。

1.__init__方法 :初始化一個 ,在創(chuàng)建實例對象為其 賦值 時使用。

2.__str__方法:在將對象轉換成字符串 str(對象) 測試的時候,打印對象的信息。

3.__new__方法:創(chuàng)建并返回一個實例對象,調用了一次,就會得到一個對象。

4.__class__方法:獲得已知對象的類 ( 對象.class)。

5.__del__方法:對象在程序運行結束后進行對象銷毀的時候調用這個方法,來釋放資源。

三、理解self

self和對象指向同一個內存地址,可以認為self就是對象的引用。

# 創(chuàng)建一個類 
class Car(object): 
 	# 創(chuàng)建一個方法打印 self 的id 
 	def getself(self): 
 		print('self=%s'%(id(self))) 
 
bmw = Car() 
print(id(bmw))
bmw.getself() 
'''輸出
140033867265696 
140033867265696 
'''

所謂的self,可以理解為對象自己,某個對象調用其方法時,python解釋器會把這個對象作為第一個參數傳遞給self,所以開發(fā)者只需要傳遞后面的參數即可。

# 創(chuàng)建一個類 
class Car(object): 
	def __init__(self,name,colour): 
		self.name = name 
		self.colour = colour 
	# 創(chuàng)建一個方法打印 self 的id 
	def getself(self): 
		print('self=%s'%(id(self))) 

bmw = Car('寶馬','黑色') 
# 實例化對象時,self不需要開發(fā)者傳參,python自動將對象傳遞給self 
print(id(bmw)) 
bmw.getself() 

四、練習對戰(zhàn)

做兩個人物對戰(zhàn)

import random
import time
#定義類
class hero(object):
    # 定義屬性
    def __init__(self,name,blood,dblood,ablood):
        self.name=name#名字
        self.blood=blood#血量
        self.dblood=dblood#這是減少的血量
        self.ablood=ablood
    #定義方法
    # 互捅
    def tong(self,enemy):
        enemy.blood-=self.dblood
        print('%s砍掉了%s%d的血量'%(self.name,enemy.name,self.dblood))

    def addblood(self):
        self.blood+=self.ablood
        print('%s吃了一顆補血藥,加了%d血量'%(self.name,self.ablood))

    def __str__(self):
        return '%s 還剩下 %s 血' % (self.name, self.blood)

xm = hero('西門吹雪',100,random.randint(10,20),random.randint(10,20))
ygc = hero('葉孤城',100,random.randint(10,20),random.randint(10,20))

x=[1,2]

while xm.blood>=0 or ygc.blood>=0:
    if xm.blood<=0:
        print('%s獲勝'%ygc.name)
        break
        pass
    elif ygc.blood<=0:
        print('%s獲勝'%xm.name)
        break
    if 10<=xm.blood <=20:
        xm.addblood()
        pass
    elif 10 <= ygc.blood <= 20:
        ygc.addblood()
        pass
    if random.choice(x)%2==0:
        xm.tong(ygc)
        print(ygc)
        print(xm)
    else:
        ygc.tong(xm)
        print(ygc)
        print(xm)
    print('***'*10)
    time.sleep(1)
    pass

在這里插入圖片描述

到此這篇關于python面向對象基礎之常用魔術方法的文章就介紹到這了,更多相關python魔術方法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 使用memory_profiler監(jiān)測python代碼運行時內存消耗方法

    使用memory_profiler監(jiān)測python代碼運行時內存消耗方法

    今天小編就為大家分享一篇使用memory_profiler監(jiān)測python代碼運行時內存消耗方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • 使用python實現時間序列白噪聲檢驗方式

    使用python實現時間序列白噪聲檢驗方式

    這篇文章主要介紹了使用python實現時間序列白噪聲檢驗方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python中函數相關的變量作用域

    Python中函數相關的變量作用域

    這篇文章主要介紹了Python中函數相關的變量作用域,變量的作用域是指程序代碼能夠訪問該變量的區(qū)域,如果超出該區(qū)域,在訪問時就會出現錯誤,需要的朋友可以參考下
    2023-08-08
  • Python map和reduce函數用法示例

    Python map和reduce函數用法示例

    這篇文章主要介紹了Python map和reduce函數用法示例,本文給出了兩個函數的多個用法示例,需要的朋友可以參考下
    2015-02-02
  • 使用python將mdb數據庫文件導入postgresql數據庫示例

    使用python將mdb數據庫文件導入postgresql數據庫示例

    mdb格式文件可以通過mdbtools工具將內中包含的每張表導出到csv格式文件。由于access數據庫和postgresQL數據庫格式上會存在不通性,所以使用python的文件處理,將所得csv文件修改成正確、能識別的格式
    2014-02-02
  • python獲取本機mac地址和ip地址的方法

    python獲取本機mac地址和ip地址的方法

    這篇文章主要介紹了python獲取本機mac地址和ip地址的方法,涉及Python獲取系統相關信息的技巧,需要的朋友可以參考下
    2015-04-04
  • python模塊內置屬性概念及實例

    python模塊內置屬性概念及實例

    在本篇內容里小編給大家分享的是一篇關于python模塊內置屬性概念及實例內容,有興趣的朋友們可以學習下。
    2021-02-02
  • 有趣的Python圖片制作之如何用QQ好友頭像拼接出里昂

    有趣的Python圖片制作之如何用QQ好友頭像拼接出里昂

    這篇文章主要介紹了有趣的Python圖片制作之如何用QQ好友頭像拼接出里昂,本文通過截圖實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python切片索引用法示例

    Python切片索引用法示例

    這篇文章主要介紹了Python切片索引用法,結合實例形式詳細分析了Python切片索引的常見使用方法與操作注意事項,需要的朋友可以參考下
    2018-05-05
  • Python內建屬性getattribute攔截器使用詳解

    Python內建屬性getattribute攔截器使用詳解

    這篇文章主要為大家介紹了Python內建屬性getattribute攔截器使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05

最新評論