关于Python的魔法方法__init__(self)和__name__=='main’的个人理解
看很多比较牛的Python代码,基本都有__init__和__main__的出现。看不明白很不舒服,就来推敲一下。虽然还是不太明白,但心里有点B数了。
def __ init __(self,a,b,…)
《笨方法学习Python 3》中有这么一段话(大致意思):
Python在你实例化class类的时候会检查这个类中是否有__init__,如果有就会调用它。进行初始化。
self是指实例化后的对象。
class song:
def __init__(self,lyrics):
self.ly = lyrics #空对象中把传来的lyrics,赋值给一个叫ly变量
print(type(self.ly))
def sing(self):#这里的self可以随便改成什么别的名字(se),下面也跟着改了就好(se.ly)。可以自己试一试,但是不能没有
for line in self.ly: #这里的ly名字不能改,改了(比如说改成sa)就提示说song这个类没有sa这个属性
print(line)
def sng(sb):
print(sb.ly) #这里的sb.ly还是__init__里头self.ly的值
a = song(['A','B','C']) self指向a,即self就是a,self. = a.
b = song(['D','E','F'])
a.sing()
b.sing()
a.sng()
实践充分说明,__init__里的self.a,意思大概就是个类整了一个a的属性(变量),类里面的函数都可调用a。起到传参数的作用吧…
至于 if __ name __== ’ __ main __’,还好
直接给让我看明白的视频吧,也给别人宣传宣传。12分钟好像(看前面几分钟就能明白了)。