python中面向對象空間時間_python基礎學習Day15 面向對象、類名稱空間、對象名稱空間 (2)...

一、類

先看一段代碼:

classPerson:

animal= '高級動物'walk_way= '直立行走' # 靜態屬性,靜態變量,靜態字段language= '語言'

def __init__(self,name,age,work): # 函數 動態屬性,方法#print(self)

self.name =name

self.age=age

self.work=workdefeat(self):print('吃吃')defwork(self):print('工作')

obj= Person('alex',25,'it')

class:? 類? ?Person:類名

類:具有相同屬性或者功能的一類實物

對象:對象是類的具體體現。

# 結構上理解:面向對象分兩個部分,靜態屬性? 動態屬性 (屬性、方法)

特點:

(1)函數封裝一個功能,而面向對象封裝多個相關的功能

(2)面向對象是抽象的,它是一種思想,站在上帝的角度去理解他

(3)程序可擴展,對象都是一個個獨立的。耦合性,差異性。

類名:

(1)查看類中的所有屬性及方法:__dict__

print(Person.__dict__)

print(Person.__dict__['animal'])? ? # 單獨查看某個屬性

# 工作中,一般只會用__dict__查看類中的所有屬性,不進行其他操作

(2)查看(增刪改)類中某個,某些屬性,用萬能的點'.'

# print(Person.animal) # 查

# Person.name = 'alex' # 增 改

# print(Person.name)

# del Person.walk_way # 刪

# print(Person.__dict__)

(3) 函數的操作方法。一般不通過類名來操作

Person.work(666) # 可以操作函數

二、對象

先看代碼:

classPerson:

animal= '高級動物'walk_way= '直立行走'language= '語言'

def __init__(self,name,age,work):#print(self)

self.name =name

self.age=age

self.work=workdefeat(self):print('吃吃')defwork(self):print('工作')

obj= Person('alex',25,'it') #這是一個實例化過程,實例化一個內存空間(即對象空間)#print(obj)#print(obj.age)#print(obj.work)#print(obj.name)

obj.hobby = 'tesla'

print(obj.__dict__)

obj.name= 'Chris'

print(obj.__dict__)delobj.workprint(obj.__dict__)

obj.animal= '低等動物'

print(obj.__dict__) #給對象添加了animal的屬性

print(Person.__dict__)print(obj.animal)print(Person.animal)#print(obj)

obj.eat()

# 對象

# 對象操作對象空間

#查看所有屬性__dict__

# print(obj.__dict__)? ? #

# 對對象的某個屬性? 增刪改查? 萬能的點

obj.hobby = 'tesla' # 增

obj.name = 'Chris'  # 改

del obj.work      # 刪

print(obj.name)    # 查

類執行的過程圖

三、組合

先看代碼:

classGamerole:def __init__(self,nickname,ad,hp):

self.nickname=nickname

self.ad=ad

self.hp=hpdef equip_weapon(self, w): #給人物封裝了一個武器屬性,這個屬性值是Weapon的一個對象

self.equip_weapon = w #組合

classWeapon:def __init__(self,name,ad):

self.name=name

self.ad=addeffight(self,role1,role2): # 此時的self為武器的內存地址

role2.hp= role2.hp -self.ad - role1.ad # 此時 role1、role2分別為p1、p2print('%s 用 %s 攻擊了%s, %s掉了%s血,還剩%s血'%(role1.nickname,self.name,role2.nickname,role2.nickname,self.ad + role.ad,role2.hp))

p1= Gamerole('蓋倫',20,500)

p2= Gamerole('劍豪',100,200)

w1= Weapon('大寶劍',30)

w2= Weapon('武士刀',80)

p2.equip_weapon(w2)

p2.equip_weapon.fight(p2,p1)

結果為:

劍豪 用 武士刀 攻擊了蓋倫, 蓋倫掉了180血,還剩320血

插入解釋圖片:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/373726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373726.shtml
英文地址,請注明出處:http://en.pswp.cn/news/373726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux GRUB 引導Win 7 ---- error: invalid EFI file path

最近新買了個固態硬盤,先裝了個Win 7系統,現在裝的系統和以前裝系統唯一的區別是引導不是以前的MBR,而是最新看似是個趨勢的GPTUEFI方式。 win 7 裝完啦,還是和以往的一樣裝 Ubantu (Ubantu 12.04),ubantu 引導磁盤扇…

其他位不變,具體位的賦值操作

GPIOC (GPIOC & 0xf0) | (Content[s_Index] & 0x0f);        //低四位賦值GPIOB (GPIOB & 0xc3) | ((Content[s_Index]>>2) & 0x3c);     //中間四位賦值 具體某一位置1或取反&#xff1a; 正確寫法&#xff1a; 置1:GPIOC | (1<<i…

使用Spring AOP實現活動記錄模式

在班級設計中&#xff0c;我們應就每個班級的職責分配做出決定。 如果我們選擇的不錯&#xff0c;系統將更易于理解&#xff0c;維護和擴展。 幾乎我們所有的項目都有一個持久層&#xff0c;即關系數據庫&#xff0c;文檔存儲或僅XML文件。 通常&#xff0c;您將使用DAO模式在業…

Java基礎之反射

框架都要用到反射技術&#xff0c;反射都要用到一個類Class. java程序中的各個java類屬于同一類事物&#xff0c;描述這類事物的java類名就是Class. 得到字節碼的方式有三種&#xff1a; Date.class;new Date().getClass();Class.forName("java.lang.String");最后一…

php socketconnect連接失敗_PHP設計模式之模板方法模式

模板方法模式&#xff0c;也是我們經常會在不經意間有會用到的模式之一。這個模式是對繼承的最好詮釋。當子類中有重復的動作時&#xff0c;將他們提取出來&#xff0c;放在父類中進行統一的處理&#xff0c;這就是模板方法模式的最簡單通俗的解釋。就像我們平時做項目&#xf…

linux系統硬件配置查看方法

一&#xff1a;查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如果覺得需要看的更加舒服 grep "model name" /proc/cpuinfo | cut -f2 -d: 二&#xff1a;查看內存 grep MemTotal /proc/meminfo grep MemT…

java String源碼學習

public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {/**char數組用于字符的存儲 */private final char value[];/** 緩存string的hash碼 */private int hash; // Default to 0public String() {/**無參構造函數,打印值為&quo…

JBoss AS 7.1.0.Final“ Thunder”發布-Java EE 6 Full Profile認證!

在JBoss AS7上進行了大約一年的開發后&#xff0c;我們現已發布7.1.0.Final“ Thunder” &#xff01; 可從此處的通常位置下載該文件。 對于JBoss AS7團隊來說&#xff0c;這是一個非常大的成就&#xff0c;我們為此版本感到非常自豪。 這個版本包含了7.1.0.CR1b的許多錯誤修復…

數據庫建表練習(10.11作業)

轉載于:https://www.cnblogs.com/HRZJ/p/5951897.html

天干地支計算公式_天干地支主怎樣計算?

回答&#xff1a;少女時代級別&#xff1a;碩士研究生2009-01-08 20:34:04來自&#xff1a;貴州省貴陽市我國古代是用天干地支來紀年的&#xff0c;現代社會已很少使用。一來現今社會已經離不開國際化&#xff0c;沿用老的歷法已經不現實&#xff1b;二來天干地支在民間多用于算…

從程序員到CTO的Java技術路線圖

時間:2013-05-29 17:39來源:www.chengxuyuans.com在技術方面無論我們怎么學習&#xff0c;總感覺需要提升自已不知道自己處于什么水平了。但如果有清晰的指示圖供參考還是非常不錯的&#xff0c;這樣我們清楚的知道我們大概處于那個階段和水平。 Java程序員 高級特性 反射、泛型…

Linux的網卡相關

檢測linux下網卡是否正常 1.dmesg | grep eth 如果出現以下 eth0: link up 說明是網卡正常的 eth0: registered as PCnet/PCI II 79C970Aeth0: link upeth0: no IPv6 routers present 2.如果所用網卡是pcI總線的 。用命令&#xff1a;lspci 能看到網卡是存在的。 3.用ethtool…

設置Spring 3開發環境

本教程簡要說明了如何設置典型的環境來開發基于Spring的應用程序。 除了可以正常工作的Windows XP客戶端具有足夠的CPU能力和內存外&#xff0c;本教程沒有其他先決條件。 在教程中&#xff0c;我們將需要安裝以下組件&#xff1a; Java 6 JDK更新26 用于Java EE開發人員的Ecl…

3. 跟蹤標記 (Trace Flag) 1204, 1222 抓取死鎖信息

跟蹤標記&#xff1a;1204/1222 功能及用途&#xff1a; 捕獲SQL Server死鎖信息&#xff0c;并自動存放到錯誤日志(ERRORLOG)中。 舉例&#xff1a; USE tempdb GO CREATE TABLE t1(id int) INSERT t1 SELECT 1CREATE TABLE t2(id int) INSERT t2 SELECT 1 GO --開啟1204/1222…

postgresql建表帶注釋_postgresql建表帶自增id和注釋語句

work是表名&#xff0c;nextval(work_myid_seq::regclass)這個是自增id的設置CREATE TABLE "public"."work" ("id" int8 NOT NULL DEFAULT nextval(work_myid_seq::regclass),"wid" int8,"address" varchar(100) COLLATE &q…

js中window.onload 與 jquery中$(document.ready()) 測試

js中window.onload 與 jquery中$(document.ready())區別&#xff0c;驗證代碼如下(調換js代碼和Jquer代碼書寫順序測試&#xff0c;運行結果一樣&#xff0c;因此與代碼書寫位置沒關系)&#xff1a;<html> <head> <script typetext/javascript srcjquery-1.11.1…

5. Longest Palindromic Substring

更新&#xff1a; 之前那種dp太笨重了有個非常的輕巧的做法&#xff0c;原理都是一樣的。 轉移方程不變&#xff0c;但是不需要特別的初始化 判斷某個格子是不是true&#xff0c;是 1.要么長度小于3&#xff0c;要么dp[start1][end-1]true 2.并且s.charAt(start) s.charAt(end…

Java中的定制國際化(i18n)

國際化&#xff08;i18n&#xff09;在我們的軟件項目中非常重要。 它主要帶來以下好處&#xff1a; 將UI字符串外部化為除代碼文件之外的外部文件&#xff0c;以及易于管理的UI內容。 支持多種語言。 在這篇文章中&#xff0c;將為Eclipse和Java項目提供一個簡短的i18n實際示…

SEO 百度后臺主動推送鏈接

實踐步驟&#xff0c;先用爬蟲程序將本網站的所有連接爬取出來&#xff0c;再用python文件處理程序把爬蟲來的東東整理成一行一個鏈接的文本格式。再用postman接口測試工具&#xff0c;使用post方式&#xff0c;將所有的鏈接post過去&#xff0c;這樣主動推送是最為快速的提交方…

linux版本 如何查kali_000_Kali Linux版本查看和apt源配置

1.查看系統版本# cat /etc/issue# lsb_release -a2.查看內核信息# uname -a3.更新源# cp /etc/apt/source.list{,.bak}# vim /etc/apt/sources.list//備注&#xff1a;國外源速度太慢&#xff0c;這里禁止&#xff1b;網絡中的部分源已經過期&#xff0c;建議更換其它源。# kal…