python面向对象

python面向对象以及三大特性的初步理解

大佬文章:
多态
三大特性
作用域
封装

python简单的创建对象

class test(object):
    #加(object)是默认继承object对象,否则不会继承object对象
    #所以加()就是继承,否则就是不继承
    def __init__(self,name):
        #init方法是构造方法,在创建对象的时候会自动调用,如果类中定义了则使用类中定义的,
        #如果没定义则使用的是object类中自带的,第一个参数必须为self,self是
        self.name=name 
    def getName(self):
        #python类中函数第一个参数为self
        print self.name
        return self.name


if __name__ == '__main__':
    t1 = test("jack")
    #实例化对象
    t1Name = t1.getName()
    print t1.name
    print t1Name
    print t1      #打印实例化后对象的地址

封装

  1. 个人理解封装的关键是private,protected字段,然后再加上get,set方法就可以了
  2. private: __name protected:_name public: name
class test(object):
  def __init__(self,name):
      self.__name = name
      #如果不加__则会在外部也可以直接访问name属性 
  def getName(self):
      return self.__name

if __name__ == '__main__':
  t1 = test("dsad")
  print t1.getName()
  1. 使用property注解
class test(object):
    
    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self,name):
        self.__name = name
    



if __name__ == '__main__':
    t1 = test()
    t1.name ="asd"
    print t1.name

特殊方法:

1.(what)什么是特殊方法:__xx__表示的是特殊属性或者方法,不要定义这类变量名,这是python内部定义的变量名
2.(how)如何使用:一般不用我们自己调用,在某些情况下会自动调用,例如,object[key]会触发 特殊方法getitem (self, value)运行,object[key]=value会触发 特殊方法setitem(self,key,value)运行,但是在继承抽象基类时候可能需要实现某些基类方法

继承

和java的继承感觉基本一致,没什么区别

多态

  1. python的多态特性是不会体现在方法重载的,应为python语言整个不关注其传递的参数的数据类型的,是可以直接统一使用的,并不会像java一样进行方法重载,也就是你无论传递什么数据类型,python其本身是可以统一进行数据管理的,不会影响其操作
  2. 但是方法重写是可以的
class test(object):
   def run(self):
       print "测试1"

class testDouble(test):
   def run(self):
       print "测试2"

class testThird(test):
   pass
if __name__ == '__main__':
   t1 = test()
   t2 = testDouble()
   t3 = testThird()
   t1.run()
   t2.run()
   t3.run()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值