bycj.net
当前位置:首页 >> python中sElF的用法 >>

python中sElF的用法

类的方法与普通的函数只有一个特别的区别它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值.这个特别的变量指对象本身,按照惯例它的名称是self. 虽然你可以给这个参数任

self表示实例自身 a=self[:]就是superlist[:]

如果你学过C++或者java的话,self就同this指针,表示当前正在被调用的这个对象

1. self是只有在类中才会有的.self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数.2. 但self的名称并不是一定的,在python中self不是关键词.在初始化函数中可以把self换成任意名字,例如myclass:class person: def _init_(

class Person: '''Represents a person.''' population = 0 def __init__(self, name): '''Initializes the person's data.''' self.name = name print '(Initializing %s)' % self.name # When this person is created, he/she # adds to the population Person.population

类(class)初始化之后会得到实例(instance).self就是用于代表初始化的到的实例.明确地写一个self参数,使得类的方法(method)和普通的函数(function)本质上没有差异,所有的输入参数都显示地传递到方法/函数当中.当然作为类的方法,作用的对象一定会是实例,因而在python的设计之初,完全可以设计成self不作为一个参数,但是那样就需要一个关键字代表实例,比如在javascript中就是this.然而python的哲学是"explicit is better than implicit.",显示要比隐示好,因此python类的方法需要一个self参数代表实例是符合逻辑的.

Python的对象不一定要有__init__方法,无论它是基类还是子类.因为__init__不是构造函数,Python对象在调用__init__的时候已被构造出来,称为“初始化”比较合适.如果一个对象是子类,且需要有__init__,那么在__init__的第一个语句就

self指的是自身,这里的self就是类自身,self.name就是Person类里的变量,是Person所有.而name是外部传来的参数,不是Person自己的变量.self.name=name这句话就是把外部传来的参数name值赋值给Person类内自己的变量name.

python中的self就相当于C++中的this指针也就是指向对象本身的指针self.name = name 就是当前对象的成员变量name赋值为name.

class Name(): def __init__(self, name): self.name = name def say(self): print 'Hello, %s' % self.name如果不用self,那该怎么实现say(),非常难.__inti__(self.name)叫做构造函数,凡是Name类的一个对象被创建,先运行构造函数,构造函数需要的参数就是类所需要的参数. 比如 a = Name('Ricky') 其实是 给__init__(self,name)提供参数.而self就说明是类的变量,类里别的函数也可以用的!这是面向对象编程思路的一个瓶颈,希望你能弄懂.

网站首页 | 网站地图
All rights reserved Powered by www.bycj.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com