码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记008_类_对象

时间:2015-11-15 13:31:01      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

# 对象 = 属性 + 方法
>>> # 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
猪八戒

 

Python学习笔记008_类_对象

标签:

原文地址:http://www.cnblogs.com/yangw/p/4966417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!