标签:
# 对象 = 属性 + 方法
>>> # Python中的类名约定以大写字母开始
>>> # tt = Turtle() 这就是创建类实例的方法,其它语言用new ,它是不需要的
>>>
>>> # Python中的self就相当于Java中的this
>>> # self ,一般都放在方法的第一个参数中这是默认的要求
class Ball: def setName(self,name): self.name=name def kick(self): print("我叫%s,谁踢我,找死啊..." %self.name) a = Ball() # 不需要用new关键字,注意和其它语言的区别 a.setName("阿黄") b = Ball() b.setName("黄红义") a.kick() 我叫阿黄,谁踢我,找死啊... b.kick() 我叫黄红义,谁踢我,找死啊...
>>>
>>> # Python的魔法方法,它是被Python在特殊的时候自动调用的
>>> # 这些魔法方法有一个特点,就是被双下划线包围
>>> # 比如 __init__(self)
>>> # __init__(self,param1,param2,...) ,是构造方法,实例化对象时自动被调用
>>>
class Ball: def __init__(self,name): self.name = name def kick(self): print("我叫%s,谁踢我,找死啊..." %self.name) b = Ball(‘土豆‘) b.kick() 我叫土豆,谁踢我,找死啊...
>>>
>>># 在Python中定义私有变量或者函数,只需要在名字前加两个下划线"__"
>>> class Person: __name = ‘猪八戒‘ >>> p = Person() >>> p.__name Traceback (most recent call last): File "<pyshell#45>", line 1, in <module> p.__name AttributeError: ‘Person‘ object has no attribute ‘__name‘
>>>
>>># 实际上,Python是将 __开头的私有属性和方法的名称改编成了 _类名__变量名
>>> # 从这一点可以看出,Python的私有化是伪私有
>>> class Person: __name = ‘猪八戒‘ def getName(self): return self.__name >>> p = Person() >>> p.getName() ‘猪八戒‘ >>> >>> p._Person__name ‘猪八戒‘
标签:
原文地址:http://www.cnblogs.com/yangw/p/4966417.html