day18 面向對象

---恢復內容開始---

1.1類的相關知識

聲明

def functionName(args):"函數文檔字符串""""函數體"""
class  類名:"""類的文檔字符串""""""類體"""
#我們創建一個類
class Date:pass
#聲明函數vs聲明類

?

屬性

class Person:   #定義一個人類role = 'person'  #人的角色屬性都是人def walk(self):  #人都可以走路,也就是有一個走路方法print("person is walking...")print(Person.role)  #查看人的role屬性
print(Person.walk)  #引用人的走路方法,注意,這里不是在調用

?

實例化:類名加括號就是實例化,會自動觸發__init__函數的運行,可以用它來為每個實例定制自己的特征

實例化的過程就是類--->對象的過程

原本我們只有一個Person類,在這個過程中,產生了一個egg對象,有自己具體的名字,攻擊力和生命值

語法:對象名=類名(參數)

    self

self:在實例化時自動將對象/實例本身傳遞給__init__的第一個參數

一:我們定義的類的屬性到底存到哪里了?有兩種方式查看
dir(類名):查出的是一個名字列表
類名.__dict__:查出的是一個字典,key為屬性名,value為屬性值二:特殊的類屬性
類名.__name__# 類的名字(字符串)
類名.__doc__# 類的文檔字符串
類名.__base__# 類的第一個父類(在講繼承時會講)
類名.__bases__# 類所有父類構成的元組(在講繼承時會講)
類名.__dict__# 類的字典屬性
類名.__module__# 類定義所在的模塊
類名.__class__# 實例對應的類(僅新式類中)

  

1.2 對象的相關知識

class 類名:def __init__(self,參數1,參數2):self.對象的屬性1 = 參數1self.對象的屬性2 = 參數2def 方法名(self):passdef 方法名2(self):pass對象名 = 類名(1,2)  #對象就是實例,代表一個具體的東西#類名() : 類名+括號就是實例化一個類,相當于調用了__init__方法#括號里傳參數,參數不需要傳self,其他與init中的形參一一對應#結果返回一個對象
對象名.對象的屬性1   #查看對象的屬性,直接用 對象名.屬性名 即可
對象名.方法名()     #調用類中的方法,直接用 對象名.方法名() 即可

?

1.3類名空間與對象的名稱空間

創建一個雷就會創建一個類的名稱空間,用來存儲類中定義的所有名字,這些名字稱之為類的屬性

而類有兩種屬性:靜態屬性和動態屬性

    靜態屬性就是直接在類中定義的變量

    動態屬性就是定義在類中的方法

其中類的數據屬性是共享給所有的對象的

而類的動態屬性是綁定到所有的對象的

?

轉載于:https://www.cnblogs.com/daien522556/p/9235143.html

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

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

相關文章

Android studio導入support-v4.jar

support-v4.jar是support library。路徑為<sdk>/extras/android/support/v4/android-support-v4.jar.轉載于:https://www.cnblogs.com/Magina-learning/p/7899788.html

html5 --- 特性檢測

使用Moderniz庫可以對H5的特性進行檢測,下載網址: https://modernizr.com // 在HTML 中的head標簽中導入 <script src"/modernizr.min.js"></script>// ps:注意src的路徑畫布(canvas)特性檢測: if (Modernizr.canvas){// 開始畫... } else {// 瀏覽器不…

編程學習筆記(第三篇)面向對象技術高級課程:緒論-軟件開發方法的演化與最新趨勢(3)軟件開發的現狀、UML擴展...

一、軟件開發的現狀 軟件領域正在發生一個巨變&#xff0c;特別是近幾年來&#xff0c;軟件領域正在發生翻天覆地的變化。 這一變化主要以這個云 端大數據&#xff0c; 這些是隨著目前最先進的一些技術的產生而產生的。 隨著這些新的技術以及軟件開發方法的不斷的提升&#xf…

百度地圖得到兩地點(通過經緯度)的距離、 通過經緯度獲取詳細地址

1 /**2 * 計算兩點間的距離3 * pt1 {lng:"12.34",lat:"3423"}第一個點的經緯度4 * pt2 {lng:"12.34",lat:"3423"}第二個點的經緯度5 * */6 getDistance:function(pt1,pt2){7 var map new BMap.Map(&…

html5 --- canvas繪制網格并畫x、y軸

效果如下: // 代碼如下: <body><canvas width"500" height"375" id"c"></canvas><script>(function draw_a() {var a_canvas document.getElementById("c");var context a_canvas.getContext("2d&qu…

系統調用軟中斷處理程序system_call分析

最近學習了系統調用的整個流程&#xff0c;這里總結并記錄。同時作為學習孟寧老師的linux內核課程的作業。 唐建&#xff0c;《Linux內核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000 1、概述 系統調用整個過程為&#xff1a;API——封裝例程——system_c…

Poj3261 Milk Patterns

題目傳送門 題意&#xff1a;對一個字符串求一個最長的子串使得它至少出現k次 額&#xff0c;因為這個題目呢&#xff0c;他的字符集非常大(100W) 所以直接用SAM是不行了&#xff0c;我們考慮用離散化SA&#xff0c;讓后就可以分塊rmq了 當然這樣很麻煩&#xff0c;我們還是用S…

html5 --- 使用canvas畫一個漸變矩形

我們希望得到如下效果: 首先準備畫布 // HTML <canvas width"500" height"375" id "a"> </canvas>// JS // 獲取畫布的DOM元素 var a_canvas document.getElementById("1"); // 獲取畫布的上下文元素(之后,就可以使用…

PHP優化與提升

一。十個不錯的建議1.使用 ip2long() 和 long2ip() 函數來把 IP 地址轉化成整型存儲到數據庫里。這種方法把存儲空間降到了接近四分之一&#xff08;char(15) 的 15 個字節對整形的 4 個字節&#xff09;&#xff0c;計算一個特定的地址是不是在一個區段內頁更簡單了&#xff0…

Servlet詳解之兩個init方法的作用

在Servlet中 javax.servlet.GenericServlet類 繼承自java.lang.Object 實現了Serializable,&#xff0c;servlet &#xff0c;ServletConfig 三個接口 被繼承對象javax.servlet.http.HttpServlet &#xff08;這是我們常用的一個類&#xff09; 但仔細看GenericServlet的API&am…

vue --- 使用vue在html上顯示當前時間

希望如下效果(時間按秒鐘更新) 導入Vue依賴的CDN <script src"https://unpkg.com/vue/dist/vue.min.js"> </script>創建視圖 <div id"app">{{date}}</div>Model <script>var app new Vue({el: "app",data: …

namespace 或The content of element type mapper must match EMPTY

必須為元素類型 "mapper" 聲明屬性 "namespace" 或The content of element type "mapper" must match "EMPTY" <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org/…

EAS WebService部署

1、創建 facade ,設置好接口及參數、返回信息; 2、代碼&#xff1a;元數據打包部署到服務器; 3、然后修改配置文件&#xff1a; 將本地開發環境生成的.wsdd文件拷貝到eas\server\deploy\eas.ear的web.war下的WEB-INF目錄下&#xff0c;再將.wsdd文件中的<service></se…

vue --- 購物車頁面

下面我看開始自己寫一個購物車的頁面. 我們希望得到如下的效果: 說明: 購買數量最小為0購買數量變化時,對應的總價隨之變化點擊移除操作對應的商品會移除掉,總價隨之改變每個商品作為一個list表的一個對象每個對象,包含id、name、price、count等屬性 index.html (整體代碼最…

Javascript阻止表單提交

Javascript阻止表單提交 Html 1.<form name"loginForm" action"login.aspx" method"post"> 2. <button type"submit" value"Submit" id"submit">Submit</button> 3.</form> Js …

XML CDATA的作用

操作XML文件時&#xff0c;如果允許用戶輸入內容&#xff0c;例如∶"< "、">"、"/"、""等&#xff0c;當生成XML時&#xff0c;會破壞了XML結構&#xff0c;使數據中斷。 這就要用XML CDATA 在XML文檔中的所有文本都會被解析器解…

vue --- 從模塊從父元素獲取數據

vue的精彩之處在于其組件的可復用性.下面談談組件(component)如何從父元素獲取數據 模塊引用 首先說說,如何引用模塊 <div id"app"><my-component ></my-component> </div> <script src“unpkg.com/vue/dist/vue.min.js”> </…

前端知識總結(一)

1、用原生JS實現forEach if(!Array.prototype.forEach) {Array.prototype.forEach function(fn, context) {var context arguments[1];if(typeof fn ! "function") {throw new TypeError(fn "is not a function");}for(var i 0; i < this.length; …

廣播風暴

能夠抑制網絡風暴的是&#xff1f;A中斷器 B集線器 C網橋 D路由器 答案D解析&#xff1a;&#xff08;1&#xff09;廣播風暴&#xff1f;一個數據幀或包被傳輸到本地網段上的每個節點就是廣播&#xff1b;由于網絡拓撲的設計和連接問題&#xff0c;或其他原因導致廣播在網段內…

java getClass()

Java反射學習 所謂反射&#xff0c;可以理解為在運行時期獲取對象類型信息的操作。傳統的編程方法要求程序員在編譯階段決定使用的類型&#xff0c;但是在反射的幫助下&#xff0c;編程人員可以動態獲取這些信息&#xff0c;從而編寫更加具有可移植性的代碼。嚴格地說&#xff…