1、init定义时,也可以增加某属性的范围值设定,但是init要求实例传入参数时,必须把所有参数值一并传入,不然就传入失败;所以,如果有个别参数需要设定参数值范围,一定要单独def一个函数。 2、private私有变量定义后,虽然可以直接进行:
s.__name=‘bobo' #实际上并没有改变原有s.name的值,原有s.name的值已经被存储在s._Studentname里;这个操作实际上只是给一个叫s.name的变量赋值了而已。 所以,此时又: s.__name 'bobo' 虽然能直接出结果,貌似违反了private的作用,但它是另一个变量了。
s.__name=‘bobo'
#实际上并没有改变原有s.name的值,原有s.name的值已经被存储在s._Studentname里;这个操作实际上只是给一个叫s.name的变量赋值了而已。 所以,此时又: s.__name 'bobo' 虽然能直接出结果,貌似违反了private的作用,但它是另一个变量了。
为什么上面的s.__name都输出不正常啊,都变成了s.name
Sign in to make a reply
Mr_安生
1、init定义时,也可以增加某属性的范围值设定,但是init要求实例传入参数时,必须把所有参数值一并传入,不然就传入失败;所以,如果有个别参数需要设定参数值范围,一定要单独def一个函数。 2、private私有变量定义后,虽然可以直接进行: