• 静态方法,类方法,属性方法


    1、全局变量:在模块内,在所有函数、类外面。

    2、局部变量:在函数内,在类方法内(未加self修饰的)

    3、静态变量:在类内,但不在类方法内。【共同类所有,值改变后,之后所有的实例对象也改变】

    4、实例变量:在类方法内,用self修饰的变量。

    静态方法

    # -*- coding: utf-8 -*-
    
    '''
    声明静态方法使用注解:@staticmethod
    静态方法通过类名进行调用
    
    '''

    class Dog(object): def __init__(self,name): self.name = name @staticmethod def eat(self,food): print("%s is eating... %s" %(self.name,food)) d = Dog("wangCai") Dog.eat(d,"baozi")

    类方法:

    # -*- coding: utf-8 -*-
    
    '''
    声明类方法使用注解: @classmethod
    
    类方法只能访问类变量,不能访问实例变量
    '''
    
    class Dog(object):
        name="xiaoQiang"
        def __init__(self,name):
            self.name = name
            
        @classmethod
        def eat(self,food):
            print("%s is eating... %s" %(self.name,food))
            
            
    
    d = Dog("wangCai")
    d.eat("baozi") #如果Dog 类中没有name属性将会报错

    属性方法:

    # -*- coding: utf-8 -*-
    
    '''
    声明属性方法使用注解:  @property
    
    属性方法:把一个方法变成一个静态属性
    
    属性方法不能像属性一样调用del 进行删除
    '''
    
    class Dog(object):
        def __init__(self,name):
            self.name = name
            
        @property
        def eat(self):
            print("%s is eating... " %(self.name))
            
       
        @property
        def run(self):
            print("%s is running %s" %(self.name))
        #设置属性方法的参数
        @run.setter
        def run(self,way):
            print("%s is running %s" %(self.name,way))
    
    d = Dog("wangCai")
    d.eat #调用属性方法
    
    #调用带参数的属性方法
    d.run = "yuanZi"
    
    
    del d.eat
  • 相关阅读:
    SQL Server 2008 导出数据与导入数据任务介绍
    如何绕过chrome的弹窗拦截机制
    jquery操作select(增加,删除,清空)
    JSON详解
    Intellij+Spring学习(一)
    Intellij IEDA 14.0+Tomcat Servlet开发
    04-Spring的注解开发
    03-Spring的XML配置
    02-Spring与IOC
    01-Spring概述
  • 原文地址:https://www.cnblogs.com/gaizhongfeng/p/7921115.html
Copyright © 2020-2023  润新知