日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第四次测试--面向对象

發布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四次测试--面向对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

面向對象

1.請簡述類、對象、實例化、實例這些名詞的含義:

#類 : 是對具有相同屬性和相似行為的一類事物的抽象 #對象: 是一個具有具體屬性值的類的實例化 #實例化 : 從一個抽象的類 變成(產生) 一個具體對象的過程 #實例: 就是對象

2.面向對象的三大特性是什么?

#繼承 多態 封裝

?3.什么是方法?類中可以定義哪幾種方法?

# 在類中的函數就是方法,描述的是一類事物的行為 # 方法 類方法 靜態方法 私有方法 內置方法 屬性方法(@property)

4.什么是屬性?類中可以定義哪幾種屬性?

# 類 和 對象所擁有的的具體的"值"指標 # 私有屬性 靜態屬性 動態屬性(方法) 對象屬性

?5.請簡述類方法和靜態方法有哪些區別?

# 裝飾器不同 @staticmethod @classmethod # 類方法中有一個默認的參數cls,而靜態方法沒有

?6.請簡述新式類和經典類的區別?

#在py3里 所有的多繼承問題 都符合 廣度優先算法 #python3中的所有類 都默認繼承object#如果一個類 繼承了object 這個類就被稱為新式類 #沒有繼承object類 就被稱為經典類#深度優先 廣度優先 都是一種遍歷算法,把這個圖中所有的項都走一遍,且不會重復#經典類 遵循 深度優先算法 且沒有mro方法 python2 #新式類 遵循 廣度優先算法 有mro方法 py2 py3 #py3 super #單繼承中 super就是找父類 #多繼承 super尋找的軌跡是根據mro(廣度優先)順序的

7.有一個類定義:?

class Person:
  def __init__(self,name,age):
    self.name = name
    self.age = age

1)初始化10個不同的對象

p1=Person('a',10) p2=Person('b',11) p3=Person('c',12) p4=Person('d',13) p5=Person('e',14) p6=Person('f',15) p7=Person('g',16) p8=Person('h',17) p9=Person('i',18) p10=Person('j',19)

2)求最高age的對象的name

l=[p1,p2,p3,p4,p5,p6,p7,p8,p9,p10]#創建一個10個對象的列表 num=0#定義num=0 for i in l:#循環列表if i.age>num:#如果對象的age屬性大于0num=i.age#則num=這個年齡 print(num)

8. 模擬cs游戲
人物角色分為警察和匪徒兩種,定義成兩個類

所有的警察的角色都是police
每個警察都有自己獨有名字,生命值,武器,性別
每個都可以開槍攻擊敵人,切攻擊目標不能是police

所有的警察的角色都是terrorist
每個匪徒都有自己獨有名字,生命值,武器,性別
每個都可以開槍攻擊敵人,切攻擊目標不能是terrorist

class Police:#定義一個警察類def __init__(self,name,gande,wuqi,value=100,):#初始化對象傳入參數self.name=name#名字屬性self.gande=gande#伙,屬性self.wuqi=wuqi#武器屬性self.value=value#生命值屬性def ataik(self,name):#定義攻擊方式if not isinstance(name,Police):#如果不是警察name.value-=10#壞人的血值減等于10else:print('友軍')#否則是友軍 class Terrorist:#定義一個匪徒的類def __init__(self, name, gande, wuqi, value=100, ):#初始化對象self.name = name#名字屬性self.gande = gande#伙屬性self.wuqi = wuqi#武器屬性self.value = value#生命值屬性def ataik(self, name):#攻擊方式if not isinstance(name, Terrorist):如果名字不是匪徒的類name.value -= 10#警察的血值-=10else:print('友軍')#否則是友軍

9. 實例化一個警察,一個匪徒,警察攻擊匪徒,匪徒掉血

p=Police('cris','man','m4a1')#實例化一個警察 t=Terrorist('alex','man','ak47')#實例化一個匪徒 p.ataik(t)#警察攻擊匪徒 print(t.value)#顯示匪徒的血值

10. 提取警察類和匪徒類相似之處定義成一個父類,使用繼承的方式減少代碼重復

class pepo:#定義一個人的類def __init__(self, name, gande, wuqi, value=100, ):#初始化方法self.name = name#name屬性self.gande = gande#伙屬性self.wuqi = wuqi#武器屬性self.value = value#血值屬性class Police(pepo):#定義一個警察,繼承人的類屬性def ataik(self, name):#定義一個攻擊方式if not isinstance(name,Police):#如果不是警察的類name.value-=10#匪徒的血值減等于10else:print('友軍')#否則是友軍class Terrorist(pepo):#定義一個匪徒def ataik(self, name):#攻擊方式if not isinstance(name,Terrorist):#如果不是匪徒的類name.value-=10#警察生命值減等于10else:print('友軍') #否則是友軍?

思考題:
有一個類的init方法如下:
class Person:
def __init__(self,name,age,sex,weight):
self.name = name
self.sex = sex
self.age = age
self.weight = weight
假設有100個person的對象,
若兩個對象的obj1,obj2的name和sex屬性相同
即obj1.name==obj2.name and obj1.sex==obj2.sex
我們認為兩個對象為同一個對象,已知一個列表中的100個對象,對這100個對象進行去重。
提示:
重寫Person類重的兩個內置方法

class Person:#定義一個類def __init__(self,name,age,sex): #初始化屬性self.name = name #對象的name屬性self.age = age #對象的age屬性self.sex = sex #對象的sex屬性def __hash__(self): #定義哈希方法return hash('%s%s'%(self.name,self.sex)) #返回hash'self.name,self.sex'的值def __eq__(self, other): #定義一個eq方法if self.name == other.name and \self.sex == other.sex: #如果對象屬性等于return True p_lst = [] #定義個空列表 for i in range(100):#打印0到99p_lst.append(Person('egon',i,'male'))#p_lst列表添加Person('egon',i,'male') p_lst.append(Person('alex',i,'male'))#p_lst列表添加Person('alex',i,'male') p_lst.append(Person('yuan',i,'male'))#p_lst列表添加Person('yuan',i,'male') print(p_lst) # print(set(p_lst)) # 報錯不可hash 完成了__hash__ # hash是否相等 __hash__ # 值是否相等 __eq__ # a==b # 收獲1 # 對于一些python當中已經存在的內置函數 內置數據類型 內置模塊中的方法 # 都有可能依賴于類中的內置方法 # 收獲2 # set方法依賴集合中元素對象的__hash__ __eq__

?

轉載于:https://www.cnblogs.com/chongdongxiaoyu/p/8584218.html

總結

以上是生活随笔為你收集整理的第四次测试--面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。