zoukankan      html  css  js  c++  java
  • Python静态方法、类方法、属性方法

    静态方法

    使用静态方法以后,相当于把下面的函数和类的关系截断了,它的作用相当于是类下面的一个独立函数,不会自动传入参数self。

    class people:
    .....
      @staticmethod
      def xxx():
        pass

      

    类方法

    只能访问类变量,不能访问实例变量。

    @classmethod
    

      

    class dog:
    	name = "小黑"
    	def __init__(self,name):
    		self.name = name
    
    	@classmethod
    	def hit(cls):
    		print("%s" % (cls.name))
    
    
    d1 = dog("小花")
    d1.hit()
    
    #输出
    小黑
    

      

    属性方法

    把一个方法变成一个静态属性,调用的时候不需要加括号(d1.hit)。

    class dog:
    	def __init__(self,name):
    		self.name = name
    
    	@property
    	def hit(self):
    		print("%s" % (self.name))
    
    
    
    d1 = dog("小花")
    d1.hit
    
    #输出
    小花
    

      

    那么如何给属性方法传入参数呢?

    可以看下面的代码,需要加上@hit.setter装饰(必须写在@property下面),且两个函数名保持一致。

    class dog:
    	def __init__(self,name):
    		self.name = name
    		self.__age = None
    
    	@property
    	def hit(self):
    		print("%s%s" % (self.name,self.__age))
    
    	@hit.setter
    	def hit(self,age):
    		print("Set hit input:",age)
    		self.__age = age
    
    d1 = dog("小花")
    d1.hit
    d1.hit = 11
    d1.hit
    
    #输出
    小花None
    Set hit input: 11
    小花11
    

      

      

    既然能传参,那么属性方法也是支持删除的。

    @hit.deleter
    	def hit(self):
    		del self.__age
    

      

  • 相关阅读:
    Centos安装Nginx过程步骤详细解析
    查看是否已经安装nginx
    使用uwsgi --http :80 --wsgi-file test.py 在浏览器上无法访问
    uwsgi 常用参数
    Python生成requirements.txt方法
    快排
    绝对路径和相对路径
    perspective结合transform的3D效果
    mobile web 手机开发
    Date对象需要注意的点
  • 原文地址:https://www.cnblogs.com/endust/p/12325453.html
Copyright © 2011-2022 走看看