網(wǎng)站首頁 編程語言 正文
python 中 __init__的用法和含義
python 中 __init__ ?與PHP中的構(gòu)造函數(shù)相似__construct()?
都具有初始化的作用。
1.python中的__init__是一個(gè)私有函數(shù)(方法),訪問私有函數(shù)中的變量在python中用self,在PHP中用$this
2.在python類的定義中,一個(gè)函數(shù)(php叫方法)的參數(shù)中必須帶有self參數(shù),且self放在第一位
如下例子
class person():
def __init__(self,name,gender,birth,**kw)://可使用 **kw定義關(guān)鍵參數(shù),代表任意參數(shù) ,python中函數(shù)的代碼塊用:php用;
self.name=name
self.gender=gender
self.birth=birth
for k,w in kw.iteritems():
setattr(self,k,w) //python中是按照縮進(jìn)來判斷代碼塊的從屬
def sayhi(self):
print 'my name is',self.name
xiaoming = person('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010') //php中實(shí)例類用new,
xiaohong = person('Xiao Hong', 'Female', '1992-2-2')
print xiaoming.name
print xiaohong.birth
print xiaoming.job
print xiaoming.tel
print xiaoming.stdid
print xiaoming.sayhi()
運(yùn)行結(jié)果如下
Xiao Ming
1992-2-2
student
18089355
15010
my?name?is Xiao Ming
補(bǔ)充:Python類中__init__()的作用
最開始學(xué)習(xí)python,認(rèn)為定義類時(shí)__init__方法的作用等同于C中的構(gòu)造函數(shù),但是使用之后發(fā)現(xiàn)也有區(qū)別。
# coding:utf-8
class a():
def __init__(self,name):
self.name = name
def get_name(self):
return self.name
b = a("wang")
print(b.get_name())
Output:
-----
wang
-----
例如:
執(zhí)行時(shí)的步驟可以理解為;
b = object.__new__(a)
a.__init__(a,"wang")
即__init__的作用是初始化實(shí)例后的對象b
在子類不重寫__init__方法時(shí),子類會(huì)默認(rèn)調(diào)用父類中的__init__方法
子類也可以重寫__init__方法,來給子類定義專屬屬性
當(dāng)然,上面寫的是比較官方的解釋
用簡單的話來講,可以理解為,類的屬性如果直接寫在類里面一般是要有值的。
例如:
class fun()
a = 3
這樣的情況下,類中的屬性無法變成變量,當(dāng)將類的屬性以self.a的方式定義到初始化方法中,那屬性也可以當(dāng)成變量
例如:
class fun():
def __init__(self, a):
self.a = a
f = fun(3)
print(f.a)
Output:
--
3
--
原文鏈接:https://www.cnblogs.com/paddygege/p/6593177.html
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-09-25 【報(bào)錯(cuò):No module named pytest】
- 2022-09-03 解決vmware上Ubuntu共享文件夾的問題_VMware
- 2023-02-03 VB十七種可用一行代碼完成判斷的技巧代碼_vb
- 2022-08-22 Pytest自定義mark標(biāo)記篩選用例_python
- 2023-04-12 python的去重以及數(shù)據(jù)合并的用法說明_python
- 2024-04-08 MAC更新和使用composer
- 2022-03-28 C語言實(shí)現(xiàn)紅黑樹詳細(xì)步驟+代碼_C 語言
- 2022-04-23 C#面向?qū)ο蟮?3種設(shè)計(jì)模式介紹_C#教程
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支