|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Python 的self 相当于 C++ 的this指针
self是由同一个类可以生成无数个对象,这些对象长的都很相似,当一个对象的方法被调用时,对象会将自身作为第一个参数传给self参数,接收self时python
就知道是哪一个对象在调用方法了。
- >>> class Ball:
- def setName(self,name):
- self.name = name
- def kick(self):
- print('我叫%s,该死的,谁踢我。。。' % self.name)
- >>> a = Ball()
- >>> a.setName('球A')
- >>> b = Ball()
- >>> b.setName('球B')
- >>> c = Ball()
- >>> c.setName('土豆')
- >>> a.kick()
- 我叫球A,该死的,谁踢我。。。
- >>> c.kick()
- 我叫土豆,该死的,谁踢我。。。
复制代码
Python的魔法方法:__init__(self)
__init__(self)的魔力是只要实例化一个对象,这个方法就会在对象被创建的时候自动调用。
- >>> class Ball:
- def __int__(self,name):
- self.name = name
- def kick(self):
- print('我叫%s,该死的,谁踢我。。。' % self.name)
- >>> b = Ball('土豆') # b传给self,土豆传给name
- >>> b.kick()
- 我叫土豆,该死的,谁踢我。。。
复制代码
公有和私有
在Python中定义私有变量只需要在变量名或函数名前加上'__' 两个下划线,那么这个函数或变量就会为私有的了。
- >>> class Person:
- name = '小甲鱼'
- >>> p = Person()
- >>> p.name
- '小甲鱼'
- >>> class Person:
- __name = '小甲鱼'
- >>> p = Person()
- >>> p.__name # 访问私有变量,报错
- Traceback (most recent call last):
- File "<pyshell#81>", line 1, in <module>
- p.name
- AttributeError: 'Person' object has no attribute '__name'
- >>> class Person:
- __name = '小甲鱼'
- def getName(self):
- return self.__name
- >>> p = Person()
- >>> p.getName() # 通过访问类的方法来返回私有变量
- '小甲鱼'
- >>> p._Person__name # 从这里得知,__name = _类名__变量名
- '小甲鱼'
- >>>
复制代码
|
评分
-
查看全部评分
|