python里的self
今天写代码。
发现关于python的self定义又不记得了。
于是于网上搜了一下,没去官网看文档,就是看了些代码。
发现python的self很有意思。
首先,self不是必须的,你可以定义成this,或者是other,反正是任何你想要的。
其次,在实例中,也就是class的instances中,是没有self这种字眼的。在subclass中有可能会出现。
一个class,在__init__()中定义self字眼,比如 def __init__(this),以后实例化这个class的时候就没有self等参数了。而this就代表了self,以后该class中所有的方法,属性,都用this,而不是self了。哈哈,很有意思的吧。
还有一点,也是搜到的。就是self的作用。
大概分为三步。
首先,解释器遇见实例,就调用它的方法或者属性。
其实,实例找到它的类,给它一个reference,这个reference在实例化的时候是__init__()的第一个参数,可以是self,也可以是自己定义的this等等。
最后,类根据这个reference,找到属性或者方法(找到的方法必须是第一个参数为reference的,找到的属性也必须有reference前缀),返回。
这个是老外写的,大概翻译就是上面的这三步了,有点纠结。
实在纠结就看这里:http://www.freenetpages.co.uk/hp/alan.gauld/tutclass.htm
当然,如果实在是不想用__init__和self这种reference的话,那就不用好了。比如
class c:
a=1
b=2
然后在命令行可以调用c.a和c.b
实例化可以这样 e=c 或者 e=c(),e.a和e.b也可以调用。
至于方法,貌似是没有self就废掉了。
