1.init的用法:
__init__(self,param1,param2...)
功能:通过该方法实现对类对象基本属性的初始化
P.S:init方法是不能返回什么的,例如字符串等。
2.举例:
class Girl:
def __init__(self,name):
self.name = name
def sayhello(self):
print('Hi,我叫%s,你呢'%self.name)
>>> g = Girl('vv')
>>> g.sayhello()
Hi,我叫vv,你呢
g传给Girl中的self,‘vv’传给name
3.公有与私有的区别
1)通过在变量名称前加双下划线来禁止外部直接访问,但还可以从内部访问访问:
class Girl:
__name = "vv"
>>> g = Girl()
>>> g.name
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
g.name
AttributeError: 'Girl' object has no attribute 'name'
不可以从外部直接访问,所以出错了,系统提示找不到这个属性,改一下:
class Girl:
__name = "vv"
def getName(self):
return self.__name
g = Girl()
>>> g.getName()
'vv'
其实Python只是将以双下划线为开头的变量改了名字而已,此时该变量的名字为:"_类__变量名"
故可以这样访问:
g._Girl__name
'vv'
故Python的私有机制可以称为“伪私有”,它仍然可以被外部调用