激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python面向對象基礎之常用魔術方法

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

2021-11-01 09:52神的孩子都在歌唱 Python

這是我聽老師上課做的筆記,文中有非常詳細的代碼示例及注釋,對新手及其友好,對正在學習python的小伙伴們也很有幫助,需要的朋友可以參考下

一、類和對象

通俗理解:類就是模板對象就是通過模板創造出來的物體

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

類的名稱: 類名

類的屬性: 一組數據

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

二、魔法方法

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

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

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

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

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

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

三、理解self

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# 創建一個類
class Car(object):
    # 創建一個方法打印 self 的id
    def getself(self):
        print('self=%s'%(id(self)))
 
bmw = Car()
print(id(bmw))
bmw.getself()
'''輸出
140033867265696
140033867265696
'''

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# 創建一個類
class Car(object):
    def __init__(self,name,colour):
        self.name = name
        self.colour = colour
    # 創建一個方法打印 self 的id
    def getself(self):
        print('self=%s'%(id(self)))
 
bmw = Car('寶馬','黑色')
# 實例化對象時,self不需要開發者傳參,python自動將對象傳遞給self
print(id(bmw))
bmw.getself()

四、練習對戰

做兩個人物對戰

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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面向對象基礎之常用魔術方法的文章就介紹到這了,更多相關python魔術方法內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_46654114/article/details/116426818

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 蜜桃av鲁一鲁一鲁一鲁 | av在线一区二区三区四区 | 欧美日本另类 | 欧美一级高潮 | 久久精品4 | 国产青草网 | 毛片a级毛片免费播放100 | 欧美一级网 | 91看片淫黄大片欧美看国产片 | 精国品产一区二区三区有限公司 | 99在线精品视频免费观看20 | 超碰人人做人人爱 | 成人精品久久 | 精品一区二区三区免费毛片爱 | 国产精品久久久久久久久久大牛 | 久久久中文| 国产理论视频在线观看 | 中文字幕天堂在线 | av色在线观看 | 国产91久久精品 | 国产精品久久久久久久久久久久午夜 | 91美女福利视频 | 日韩精品一区二 | 亚洲国产精品久久久久婷婷老年 | 黄网站在线免费 | 娇喘视频在线观看 | 国产成人强伦免费视频网站 | av免费在线网站 | 毛片一区二区三区四区 | 国产成人在线一区 | 4p嗯啊巨肉寝室调教男男视频 | 91精品国产777在线观看 | 在线中文字幕播放 | 特级无码毛片免费视频尤物 | 免费久久久 | 国产精品一品二区三区四区18 | 久久电影一区二区 | 一区二区三区日韩视频在线观看 | 日本一区二区不卡高清 | 黄色网址入口 | 久久久久亚洲视频 |