一、self
self代表类的实例,定义方法时写进第一个参数
>>> 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,该死的,谁踢我...
>>> b.kick()
我叫球B,该死的,谁踢我...
>>> c.kick()
我叫土豆,该死的,谁踢我...
>>>
二、魔法方法
__init__(self):对象的初始化操作(类似构造函数),即在创建类的实例后自动实现__init__方法内的属性或方法
>>> class Ball:
def __init__(self, name):
self.name = name
def kick(self):
print('我叫%s,该死的,谁踢我...' % self.name)
>>> b = Ball('土豆')
>>> b.kick()
我叫土豆,该死的,谁踢我...
三、公有和私有
一般类中的方法和属性均为公有,若强调为私有,则在变量名前写入'__'双下划线
Python的私有是伪私有(Python的类没有权限控制),即仅将__name属性转为_Person__name变量,即‘_类名__属性’即可访问到
>>> class Person:
__name = '张三'
>>> p = Person()
>>> p._Person__name
'张三'
>>> p.name
Traceback (most recent call last):
File "<pyshell#48>", line 1, in <module>
p.name
AttributeError: 'Person' object has no attribute 'name'
>>>