日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

python?中?__init__的意義以及作用_python

作者:在下劉彥直 ? 更新時(shí)間: 2023-06-20 編程語言

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

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新