zoukankan      html  css  js  c++  java
  • Python3 面向对象编程高级语法

    1.静态方法:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    
    class Dog(object):
        def __init__(self,name):
            self.name=name
        """
        静态方法
        只是名义上归类管理, 实际上在静态方法里访问不了类或实例中的任何属性
        """
        @staticmethod
        def eat(aaa):
            print(aaa)
    
    d=Dog("小明")
    d.eat("asdfg")
    

      运行结果:

    asdfg
    

    2.类方法:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    '''
    类方法
        只能访问类变量,不能访问实例变量
    '''
    
    class Dog(object):
        '''
        类方法
            只能访问类变量,不能访问实例变量
        '''
        addr = "深圳"
        def __init__(self,name):
            self.name=name
    
        @classmethod
        def eat(self,age):
            print(self.addr,age)
    
    d=Dog("小明")
    d.eat(25)
    

     运行结果:

    深圳 25
    

    3.属性方法:

      属性方法设置参数和删除参数的函数名可以和该参数名一样,也可以不一样

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    """
    属性方法
        把一个方法变成一个静态属性
    """
    class Car(object):
        def __init__(self,name,logo):
            self.name=name
            self.logo=logo
        """属性方法"""
        @property
        def drop(self):
            print("获取速度%s"%self.sudu)
    
        """为属性方法设置属性,相当于传值"""
        @drop.setter
        def setdrop(self,sudu):
            self.sudu=sudu
            print("设置速度%s"%self.sudu)
    
        """删除属性方法的自己的属性"""
        @drop.deleter
        def deldrop(self):
            del self.sudu
        
        """ 设置属性和删除属性的方法名和属性方法名一致 """
        @property
        def color(self):
            print("%s的颜色为%s"%(self.name,self.colour))
    
        @color.setter
        def color(self,colour):
            self.colour=colour
            print("设置%s的颜色为%s"%(self.name,self.colour))
    
        @color.deleter
        def color(self):
            del self.colour
    
    bmw=Car("华晨马宝宝","BMW")
    #属性方法中属性的设置   触发@drop.setter
    bmw.setdrop="180"   #运行结果:当前速度是180
    #属性方法的调用不用括号
    bmw.drop   #运行结果:180千米每小时
    #触发 @drop.deleter
    del bmw.deldrop
    
    
    bmw.color="blue"  #运行结果:设置华晨马宝宝的颜色为blue
    bmw.color   #运行结果:华晨马宝宝的颜色为blue
    del bmw.color
    

      

  • 相关阅读:
    SQL删除重复记录
    C#分页插件 Webdiyer
    B/S系统操作日志设计思路
    VS2010自动添加版权信息以及更改默认的jquery库
    Gridview中添加CheckBox全选
    利用log4net记录操作日志
    如何在定义游标的时候使用动态sql语句
    java 获取指定月份第一天和最后一天
    java 判断星期几
    SSH登陆错误"WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! "
  • 原文地址:https://www.cnblogs.com/bert227/p/9629355.html
Copyright © 2011-2022 走看看