Python---静态方法,类方法,属性方法

原创 2018年04月16日 18:26:16

1.静态方法

#静态方法:只是名义上归类管理,实际上在静态方法中访问不了类和实例
class Person(object):
    def __init__(self,name):
        self.name=name
    @staticmethod   #截断类与函数关系,不能调用类变量
    def eat():
        print("%s is eating %s"%('ddd','dd'))
d=Person("XiaoMing")
d.eat()

若想调用self,则需自行传实例,如下:

#静态方法:只是名义上归类管理,实际上在静态方法中访问不了类和实例
class Person(object):
    def __init__(self,name):
        self.name=name
    @staticmethod   #截断类与函数关系,不能调用类变量
    def eat(self):
        print("%s is eating %s"%(self.name,'dd'))
d=Person("XiaoMing")
d.eat(d)

2.类方法

#类方法:只能访问类变量,不能访问实例变量
class Person(object):
    A='Xiaoxiong'
    def __init__(self,name):
        self.name=name
    @classmethod
    def eat(self):
        print("%s is eating %s"%(self.A,'ddd'))
d=Person("XiaoMing")
d.eat()

3.属性方法 (作用 隐藏实现细节)

#属性方法
#1.将函数方法变为一个静态属性
class Person(object):
    def __init__(self,name):
        self.name=name
    @property
    def eat(self):
        print("%s is eating %s"%(self.name,'dd'))
d=Person("XiaoMing")
d.eat
#2.修改属性
class Person(object):
    def __init__(self,name):
        self.name=name
        self.__food=None
    @property
    def eat(self):
        print("%s is eating %s"%(self.name,self.__food))
    @eat.setter
    def eat(self,food):
        print("set to food:",food)
        self.__food=food
d=Person("XiaoMing")
d.eat='baozi'
d.eat
#3.删除属性
class Person(object):
    def __init__(self,name):
        self.name=name
        self.__food=None
    @property
    def eat(self):
        print("%s is eating %s"%(self.name,self.__food))
    @eat.setter
    def eat(self,food):
        print("set to food:",food)
        self.__food=food
    @eat.deleter     #删除私有属性self.__food
    def eat(self):
        del self.__food
        print("删完了")
d=Person("XiaoMing")
d.eat
d.eat='baozi'
d.eat
del d.eat  #删除函数方法私有属性后即可删除函数
d.eat

用C#实现封装

本课程主要讲解了C#中属性的封装,方法的应用,构造函数的重载,以及值传递和引用传递的区别。在学习本课程之前需要掌握一定的基础知识。
  • 2017年07月23日 16:27

Python普通方法、静态方法、类方法

Python普通方法、静态方法、类方法今天尝试了一下Python普通方法、静态方法、类方法的区别# -*-coding:utf-8-*- # 普通方法,类方法,静态方法的区别__metaclass__...
  • chendong_
  • chendong_
  • 2016-08-11 10:31:57
  • 12581

python 普通方法、静态方法和类方法有什么区别?

下面用例子的方式,说明其区别。首先, 定义一个类,包括3个方法:class Apple(object): def get_apple(self, n): ...
  • lanyang123456
  • lanyang123456
  • 2017-04-30 11:40:23
  • 1256

python中,类方法和静态方法区别。

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。 在C
  • a2806005024
  • a2806005024
  • 2014-06-13 14:39:49
  • 16911

Python中的类属性、实例属性与类方法、静态方法

1、什么是类对象,实例对象 类对象:类名 实例对象:类创建的对象 2、类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本,这个和C++、Java中类的静态成员变量有点...
  • qq_31780525
  • qq_31780525
  • 2017-05-23 14:55:27
  • 3297

python3 实例方法,类方法,静态方法

实例方法 顾名思义 类实例化后才能调用的方法 , 参数的值默认调用实例化传入参数 , 不存在调用类属性 类方法 @classmethod   def classget(cls): p...
  • banfang2013
  • banfang2013
  • 2017-06-17 09:59:05
  • 1420

Python的类方法,静态方法,实例方法的区别

class ObjOpt:    def __init__(self):        self.Name='abc'        self.CCC=123    #实例方法        def ...
  • hawksoft
  • hawksoft
  • 2015-03-02 20:02:17
  • 9403

JAVA中类方法(静态方法)和实例方法的区别

JAVA中类方法(静态方法)和实例方法的区别
  • c727342289
  • c727342289
  • 2016-11-11 17:49:32
  • 1509

Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)

如果只看这个图,很多人可能会看的一头雾水,特别是学过完全面向对象语言的同学, Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是...
  • huanhuanq1209
  • huanhuanq1209
  • 2017-06-26 13:47:44
  • 396

Python静态方法和类方法深度总结

Python静态方法和类方法深度总结
  • u014745194
  • u014745194
  • 2017-06-17 22:46:40
  • 1432
收藏助手
不良信息举报
您举报文章:Python---静态方法,类方法,属性方法
举报原因:
原因补充:

(最多只允许输入30个字)