为了账号安全,请及时绑定邮箱和手机立即绑定

Python-面向对象

剑圣OMG Linux系统工程师
难度中级
时长59分
学习人数
综合评分9.13
144人评价 查看评价
9.4 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • 用@property定义的函数,可以再调用时,直接访问属性使用,不需要引用的时候加括号()

    查看全部
  • 类方法是@classmethod,带入参数是cls(默认使用)

    查看全部
  • class Programer(object):
     """docstring for Programer"""
     def __init__(self, name,age):
      super(Programer, self).__init__()
      self.name = name
      self.age = age def __getattribute__(self,name):  #return getattr(self,name)    #错误写法,会引起无限递归  #return self.__dict__[name]   #错误写法,会引起无限递归  return super(Programer,self).__getattribute__(name)  #正确  def __setattr__(self,name,value):  #setattr(self,name,value)   #错误写法,会引起无限递归  self.__dict__[name]=value   #正确 if __name__=='__main__':    p=Programer('lrf',25)    print(p.name)
    查看全部
  • #函数
    #方法:类的内部函数为方法,其他单写的为函数class Programer(object):    hobby='Play Computer'    """docstring for Programer"""    def __init__(self, name,age,weight):        super(Programer, self).__init__()        self.name = name       #普通变量        self._age = age        #私有变量,但可以外部访问        self.__weight = weight #私有变量,但可以通过_Programer.__weight来访问    @classmethod    def get_hobby(self):        return self.hobby      #@classmethod直接Programer.get_hobby访问,类似于C的静态        @property    def get_weight(self):      #@property定义属性        return self.__weight      def self_introductioon(self):  #通过类的实例来访问        print ('My Name is %s \nI am %s years old\n' % (self.name,self._age))class BackendProgramer(Programer):  """docstring for ClassName"""  def __init__(self, name,age,weight,language):  #类的继承    super(BackendProgramer, self).__init__(name,age,weight)    self.language = language  def self_introductioon(self):  #类方法的重写     print ('My Name is %s \n My favorite language is %s' % (self.name,self.language))def introduce(programer):    if isinstance(programer,Programer):  #判断是不是该类型 多态       programer.self_introductioon()if __name__=='__main__':   programer=Programer('lrf',25,80)   print (dir(programer))      #类的属性,包括object之类的   print (programer.__dict__)  #类的属性,内部属性   print (Programer.get_hobby())   print (programer.get_weight)   programer.self_introductioon()   backendProgramer=BackendProgramer('Tim',30,70,'Python')   introduce(programer)   introduce(backendProgramer)

    查看全部
    0 采集 收起 来源:类的多态

    2019-11-05

  • 定义类的方法
    #函数
    #方法:类的内部函数为方法,其他单写的为函数
    class Programer(object):    
    hobby='Play Computer'    
    """docstring for Programer"""    
    def __init__(self, name,age,weight):        
    super(Programer, self).__init__()        
    self.name = name       #普通变量        
    self._age = age        #私有变量,但可以外部访问   self.__weight = weight #私有变量,但可以通过_Programer.__weight来访问    
    
    @classmethod    
    def get_hobby(self):        
    return self.hobby      #@classmethod直接Programer.get_hobby访问,类似于C的静态        
    
    @property    
    def get_weight(self):      定义属性        return self.__weight  
        
    def self_introductioon(self):  #通过类的实例来访问        print ('My Name is %s \nI am %s years old\n' % (self.name,self._age))
    
    if __name__=='__main__':  
     programer=Programer('lrf',25,80)   
     print (dir(programer))      #类的属性,包括object之类的   
     print (programer.__dict__)  #类的属性,内部属性   print (Programer.get_hobby())   
     print (programer.get_weight)   
     programer.self_introductioon()

    查看全部
  • 对象:类的一个实例
    查看全部
  • 看看
    查看全部
  • 有人有关于爬虫学习的网站吗?
    查看全部
  • python类的主要魔术方法:

    1,输出方法

    __str__(), __repr__(), __dir__()

    2,比较运算符

    __eq__(), __gt__(), __lt__(), __ge__(), __le__()

    3,算术运算符

    _add__(), __sub__(), __mul__(), __div__()


    查看全部
  • class Person(object):

        def __init__(self, name, age):

            self.name = name

            self.__age = age

    p = Person('zhao', 30)

    1,__age属性在外部不能访问,但可以通过 _Person__age 这样的形式访问到;

    2,调用 p.__dict__() 可以得到包含所有属性名和属性值的字典;

    查看全部
  • 避免注释掉的三个错误写法,会造成无限递归。

    查看全部
  • python支持重载运算符,使用magic mathod 方式。例如图中的__add__重载完了之后,就可以使用 p1+p2了。

    查看全部
  • 对象实例化过程会经历两个magic method(魔术方法),但我们往往不自己定义 __new__(cls)

    查看全部
  • python中可以使用继承然后重写父类方法来实现多态

    查看全部
    0 采集 收起 来源:类的多态

    2019-10-13

  • 子类应当主动调用父类的构造函数:

    def __init__(self, name, age, weight, language):
        super(BackendProgrammer, self).__init__(name, age, weight)
        self.language = language


    查看全部

举报

0/150
提交
取消
课程须知
热爱编程,对Python基础知识已经掌握。
老师告诉你能学到什么?
1.面向对象的理论基础 2.Python基本的面向对象特性 3.深入的了解Python面向对象

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!