zoukankan      html  css  js  c++  java
  • Python 面向对象

    6.面向对象

       6.1类和实例

       class Student(object):

       #注意:特殊方法“init”前后有两个下划线!!!

                   def __init__(self,name,score):#第一个参数self永远是类创建的实例本身

                            self.__name=name

                            self.__score=score

                   def print_score(self):

                            print('%s: %s' % (self.__name,self.__score))

                           

                    def get_grade(self):

            if self.__score >= 90:

                return 'A'

            elif self.__score >= 60:

                return 'B'

            else:

                return 'C'

               

    bart = Student('Bart Simpson', 59)

    bart.get_grade()

    方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据,封装-----

             -------

          6.2 访问限制

    #__name是private变量        如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__ 

    私有变量__name 的实质是_Student__name,如此可以使用对象._Student__name访问,一般不这样使用

    ------

    python中存在特殊变量 __name__ (双_开头,双_结束),外部对象是可以直接访问特殊变量的

    6.3 继承和多态

    python 是动态语言 鸭子理论,对于继承,只要子类实现了父类的方法,就可以继承父类

             -------

          6.4 获取对象信息

             type('str')  #返回(class 'str')

             isinstance('a',str)  #返回True

            

             python中len()方法   len('abc')其实就是调用'abc'.__len__  #返回3

             >>> class MyObject(object):

    ...     def __init__(self):

    ...         self.x = 9

    ...     def power(self):

    ...         return self.x * self.x

    ...

    >>> obj = MyObject()

    hasattr getattr setattr  直接操作对象的属性状态

    hasattr(obj,'x')  #True

    setattr(obj,'y',19) 

    getattr(obj,'y')  #返回为19

    --获得对象的方法

    getattr(obj,'power')

    fn=getattr(obj,'power') #fn 指向obj.power

    fn()==obj.power()

    ------------

    6.5实例属性和类属性

    python是动态语言,创建对象时,可以任意绑定属性

    类属性属于类的,但是实例对象也可以进行访问调用,类属性和实例属性名称不要定义一样的

  • 相关阅读:
    建设是为“有” 共享是为“无”
    设计模式-命令模式
    设计模式-建造者模式
    设计模式-抽象工厂模式(升级版工厂方法模式)
    设计模式-原型模式
    设计模式-单例模式
    Java中的多维数组
    设计模式-装饰者
    设计模式-模板方法
    乐观锁与悲观锁
  • 原文地址:https://www.cnblogs.com/smartwen666/p/7911325.html
Copyright © 2011-2022 走看看