Python10/22--面向對象編程/類與對象/init函數

類:
語法: class關鍵字 類名
# 類名規范 大寫開頭 駝峰命名法
class SHOldboyStudent:
# 描述該類對象的特征
school = "上海Oldboy"
name = "矮根"
age = 68
gender = "unknown"

# 在定義階段
# 只要包含該類的py被執行 就會做兩件事情
# 1.就會創建類的名稱空間
# 2.執行代碼 將產生的名稱放入名稱空間
print("========================")

# 描述該類對象的行為 通過函數
def say_hi(abc):
print(abc)
print("hello oldBoy")

#使用類中的屬性
print(SHOldboyStudent.__dict__)
print(SHOldboyStudent.__dict__["name"])
print(SHOldboyStudent.name)

# 使用類中的函數
print(SHOldboyStudent.__dict__["say_hi"])
print(SHOldboyStudent.say_hi)
# 使用類直接調用類中函數時 與普通函數沒有任何區別 位self僅僅是一個置參數
SHOldboyStudent.say_hi(10)



對象的使用
class OldboyStudent:
# 如果每個對象的這個屬性都相同 才應該定義到類中 比如所有人的學校都是上海Oldboy
school = "上海Oldboy"

# 創建對象
# 語法: 在類名后加括號 與調用函數寫法相同
# stu = OldboyStudent()
# # 訪問對象的屬性
# print(stu.school)
# print(OldboyStudent.school)

# 修改屬性的值
# stu.school = "北京Oldboy"
# print(stu.school)
#
# # 增加屬性
# stu.room_num = "1008"
# print(stu.room_num)
#
# # 刪除屬性
# del stu.room_num
# print(stu.room_num)

# 對象 與類的名稱空間是獨立的
# stu.school = "深圳oldboy" # 為對象的屬性賦予新的值
# print(OldboyStudent.school) # 類中的屬性不會變化
# stu.room_num = "1008" # 為對象增加屬性
# # print(OldboyStudent.room_num) #類中也不會出現新的屬性
# print(stu.__dict__)
# print(OldboyStudent.__dict__)

# 如果對象的屬性是相同的 就放到類中 作為一個公共的數據
# stu.school #大家都是上海小區

# stu2 = OldboyStudent()
# print(stu2.__dict__)


init函數:
# __init__稱之為初始化函數  它會在創建對象的時候自動執行
# 創建對象時
# 1.創建一個空對象
# 2.執行__init__函數 并且自動傳入了這個對象

# 該函數的作用,就是為對象的屬性賦初始值
#1. 使用場景 需要為每個對象定制不同的屬性值
#2.__init__在創建對象后自動執行
#3.第一個self參數 指的是這個對象本身 不需要手動傳值
 


1.所有程序都因該使用面向對象來設計嗎?為什么?
不是所有程序都應該使用面向對象,應該面向對象會提高程序的復雜度,對于一些擴展要求不高的程序,則不一定非要使用面向對象
2.什么是對象 什么是類
對象指的是現實生活中實實在在存在的物體,并且其具備獨特的特征與行為 反過來可以理解為 特征與行為的結合體
類是一些具備相同特征和技能的事物的抽象概念,不實際存在
3.在面向過程編程中我們思考解決方案時,是分析完成任務時需要哪些步驟,按照什么樣的順序來編寫,而在面向對象編程中我們從操作者轉變為指揮者 首先思考的是什么?
首先思考,完成任務需要哪些對象來參與
其次分析這些對象具備哪些特征和行為
最后按照分析結果編寫class

4.一個類中通常包含變量和函數,它們分別用于描述什么?
變量用于描述該類對象共同的屬性
函數用于描述該類對象具備的行為(技能)

5.類在定義階段發生了什么
立即執行類中的代碼 將產生的名字存放在類的名稱空間中
6.創建對象時發生了什么
1.創建空對象
2.自動執行init函數 將這個對象以及額外的參數組裝后傳給該函數

7.什么是綁定方法,和普通函數有什么區別
綁定方法其實就是對象和函數得綁定在一起
在調用綁定方法時,會自動傳入對象本身
最終執行的還是類中定義的函數
綁定方法僅僅是幫我們自動傳入了對象
區別:
普通函數在調用時,根據函數聲明有幾個參數就一定要傳幾個參數
而綁定函數在調用時,會自動傳入對象本身,所以通常我們手寫的參數個數比聲明的少一個

?

轉載于:https://www.cnblogs.com/junge666/p/9832697.html

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

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

相關文章

Django Form和ModelForm組件

Form介紹 我們之前在HTML頁面中利用form表單向后端提交數據時,都會寫一些獲取用戶輸入的標簽并且用form標簽把它們包起來。 與此同時我們在好多場景下都需要對用戶的輸入做校驗,比如校驗用戶是否輸入,輸入的長度和格式等正不正確。如果用戶輸…

ESLint 規則詳解

前端界大神 Nicholas C. Zakas 在 2013 年開發的 ESLint,極大地方便了大家對 Javascript 代碼進行代碼規范檢查。這個工具包含了 200 多條 Javascript 編碼規范且運行迅速,是幾乎每個前端項目都必備的輔助工具。可是,這么多規則,每…

全文搜索引擎 ElasticSearch 還是 Solr?

原文鏈接 最近項目組安排了一個任務,項目中用到了全文搜索,基于全文搜索 Solr,但是該 Solr 搜索云項目不穩定,經常查詢不出來數據,需要手動全量同步,而且是其他團隊在維護,依賴性太強&#xff0…

對局匹配

問題描述小明喜歡在一個圍棋網站上找別人在線對弈。這個網站上所有注冊用戶都有一個積分,代表他的圍棋水平。小明發現網站的自動對局系統在匹配對手時,只會將積分差恰好是K的兩名用戶匹配在一起。如果兩人分差小于或大于K,系統都不會將他們匹…

NodeJS作為Web架構中間層的使用

截至2016年12月,中國網民規模已達7.31億。傳統的網站系統是否能夠支撐得起如此龐大的且不斷增長的用戶訪問并且為用戶提供體驗友好的頁面? 一、傳統的前后端: 二、傳統的前后端分離問題: 性能問題: 1、渲染、數據都在…

Springboot項目修改html后不需要重啟---springboot項目的熱部署

一、spring-boot-devtools 在pom中直接引入依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency> 設置以下兩項&#xff08…

Hibernate中session的get方法和load方法的區別

一.發送SQL時機&#xff1a; load方法采用延遲加載&#xff08;lazy懶加載&#xff09;&#xff0c;執行到這行代碼的時候&#xff0c;不會發送SQL語句&#xff0c;當真正使用這個對象的數據&#xff08;對象的數據不包括主鍵&#xff09;的時候才發送SQL語句&#xff1b; get…

Node.js Web 開發框架大全《中間件篇》

這篇文章與大家分享優秀的 Node.js 中間件模塊。Node 是一個服務器端 JavaScript 解釋器&#xff0c;它將改變服務器應該如何工作的概念。它的目標是幫助程序員構建高度可伸縮的應用程序&#xff0c;編寫能夠處理數萬條同時連接到一個&#xff08;只有一個&#xff09;物理機的…

windows server 2012 流媒體服務器搭建(直播與點播)

IIS Live Smooth Streaming&#xff08;實時平滑流式處理&#xff09;是微軟下一代流媒體解決方案。該技術是在IIS web中集成媒體傳輸平臺IIS media services&#xff0c;實現利用標準 HTTP Web 技術以及高級 Silverlight 功能&#xff0c;確保在互聯上傳輸質量最佳、播放流暢音…

團隊項目第一篇——NABCD

團隊名稱&#xff1a;筑夢之舟 團隊項目名稱&#xff1a;跑跑 N&#xff08;Need&#xff09;需求&#xff1a; 有許多人在跑步時想了解自己的移動軌跡和跑步距離很不便利&#xff0c;無法了解跑步的日程&#xff0c;我們的軟件就是為了更加方便熱愛跑步的人能夠參加到跑步之中…

Vue warn Failed to mount component: template or render function not defined

問題如圖&#xff0c;造成這類的問題一般有這么幾個原因。 代碼的拼寫問題&#xff0c;當然這是最低級的錯誤vue定義的問題&#xff0c;這里我說明兩點 在組件內部定義組件時&#xff0c;template 對應的必須是html字符串引用外部組件時&#xff0c;vue文件必須以template標簽…

Python實現線性回歸2,梯度下降算法

接上篇 4.梯度下降算法 《斯坦福大學公開課 &#xff1a;機器學習課程》吳恩達講解第二課時&#xff0c;是直接從梯度下降開始講解&#xff0c;最后采用向量和矩陣的方式推導了解析解&#xff0c;國內很多培訓視頻是先講解析解后講梯度下降&#xff0c;個人認為梯度下降算法更為…

在centos和redhat上安裝docker

前置條件 64-bit 系統kernel 3.101.檢查內核版本&#xff0c;返回的值大于3.10即可。$ uname -r 2.使用 sudo 或 root 權限的用戶登入終端。 3.卸載舊版本(如果安裝過舊版本的話) $ yum remove docker \docker-common \docker-selinux \docker-engine 4.安裝需要的軟件包 #yum-…

mac 下用 brew 安裝mongodb

mac 下安裝mongoDB一般倆種方法. (1)下載源碼,解壓,編譯,配置,啟動 比較艱難的一種模式. (2)brew install mongodb ,然后就可以悠閑的品一口茶,順便瞄一眼網易新聞,這是一種傻瓜模式. 但傻瓜模式也有人為干預的時候,粗略說一下使用brew 安裝mongodb 1 zhangzhimoke:~/code$…

比較python類的兩個instance(對象) 是否相等

http://www.yihaomen.com/article/python/281.htm 比較python類的兩個instance(對象) 是否相等 作者:輕舞肥羊 日期:2012-10-25 字體大小: 小 中 大對于同一個Class,可以創建不同的實例(instance), 如何比較這兩個 instance 是否相等呢&#xff1f;我們知道&#xff0c;對于計算…

Mybaits插入記錄返回主鍵值

某些情況進行insert時不知道主鍵值&#xff08;主鍵為自增&#xff09;&#xff0c;例如系統新增用戶時&#xff0c;有用戶序號&#xff08;主鍵 自增&#xff09;&#xff0c;用戶名&#xff0c;密碼。插入時只需插入用戶名和密碼&#xff0c;之后取得mysql自增的序號。 如下為…

Mac 解決brew一直卡在Updating Homebrew

運行命令brew install node&#xff0c;結果界面一直卡在Updating Homebrew...上&#xff0c;有兩種解決辦法 方法一&#xff1a;直接關閉brew每次執行命令時的自動更新&#xff08;推薦&#xff09; vim ~/.bash_profile# 新增一行 export HOMEBREW_NO_AUTO_UPDATEtrue方法二…

CAS單點登錄原理簡單介紹

1. SSO簡介 1.1 單點登錄定義 單點登錄(Single sign on)&#xff0c;英文名稱縮寫SSO&#xff0c;SSO的意思就是在多系統的環境中&#xff0c;登錄單方系統&#xff0c;就可以在不用再次登錄的情況下訪問相關受信任的系統。也就是說只要登錄一次單體系統就可以。計劃在項目中加…

前端跨域通信的幾種方式

前言 前端通信類的問題&#xff0c;主要包括以下內容&#xff1a; 1、什么是同源策略及限制 同源策略是一個概念&#xff0c;就一句話。有什么限制&#xff0c;就三句話。能說出來即可。 2、前后端如何通信 如果你不準備&#xff0c;估計也就只能說出ajax。 3、如何創建Aja…

T4((Text Template Transformation Toolkit))模版引擎之基礎入門 C#中文本模板(.tt)的應用...

1 關于C#中文本模板(.tt)的簡單應用https://blog.csdn.net/zunguitiancheng/article/details/78011145 任何一個傻瓜都能寫出計算機能理解的程序&#xff0c;而優秀的程序員卻能寫出別人能讀得懂的程序。—— Martin Fowler 2 T4模版引擎之生成數據庫實體類 http://www.cnblogs…