面向对象编程

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,该死的谁踢我。。
>>> c.kick()
我叫土豆,该死的谁踢我。。

当调用kick方法时 a.kick()括号里面有个隐藏的self参数,self自动接收到了a 输出的结果就是“我叫球A,该死的谁踢我。。”
self是python 默认的,必须写在参数的第一个位置。

python的__init__方法
__init__方法初始化对象

class Ball:
    def __init__(self,name):
        print("我是%s"%name)
        self.name = name
    def kick(self):
        print("我叫%s,该死的谁踢我。。"%self.name)
        
>>> b  = Ball('土豆')
我是土豆
>>> b.kick()
我叫土豆,该死的谁踢我。。

注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

公有和私有:

>>> class Person:
    name = "Alex"
    
>>> p = Person()
>>> p.name
'Alex'

python 定义私有变量,只需要在变量名或函数名前面加上‘——’二个下划线就可以了

>>> class Person:
    __name = "Alex"

这个时候使用p.name系统就会报错
当然你可以写成:

>>> class Person:
    __name = "Alex"
    def getName(self):
        return self.__name 
>>> Person().getName()
'Alex'

利用方法从函数内部调用
或者使用_类名__变量名的方式访问

>>> Person()._Person__name
'Alex
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值