类的三种方法(静态方法,类方法,属性方法)

1.(静态方法)

class Dog(object):
      def __init__(self, name):
         self.name = name
      @staticmethod
      def name(obj):
          print(‘%s is name‘%obj)

Dog.name(‘ronghua‘)

@staticmethod静态方法与类本身不存在关系,只是调用的时候需要加类名,不可对类中的其他变量进行操作

2.(类方法)

class Dog(object):
    name = ‘alex‘
    def __init__(self, name):
         self.name = name

@classmethod
    def eat(self):
         print(‘%s is eating‘%self.name)

dog = Dog(‘ronghua‘)

dog.eat()

@classmethod类方法只调用类里面的变量,不调用实例变量

3.(属性方法)

class Dog(object):
      def __init__(self, name):
          self.name = name
          self.__foods = None

@property                 #定义属性方法
       def eat(self):
            print(‘%s is eating %s‘%(self.name, self.__foods))

@eat.setter               #属性方法添加参数
       def eat(self, food):
             self.__foods = food
             print(‘%s is eating %s‘%(self.name, self.__foods))
       @eat.deleter            #属性方法的删除
        def eat(self):
             del self.__foods

dog = Dog(‘shuhua‘)

dog.eat           这是属性变量,因此调用时不需要()

dog.eat = ‘包子‘   #传入参数

dog.eat

del dog.eat     #属性变量中的删除

dog.eat     #这里会出现报错,因为不存在self.__foods 变量

原文地址:https://www.cnblogs.com/my-love-is-python/p/9101925.html

时间: 2024-10-19 10:12:28

类的三种方法(静态方法,类方法,属性方法)的相关文章

python静态方法类方法属性方法

Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数: 2)从第1条,静态方法是无法访问实例变量的,而类成员方法也同样无法访问实例变量,但可以访问类变量: 3)静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法. 静态方法 @staticmethod    def staticmd():        print '静态方法 @classmetho

20151015_系统分析阶段分析类的三种类型

在系统分析阶段将分析类分为三种类型:实体类.界面类.控制类. 1.实体类 实体类主要是作为数据管理和业务逻辑处理层面上存在的类别: 它们主要在分析阶段区分 实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关 基本信息 上述给出的实体类的定义是比较抽象的.类具有继承和递归的特点,实体类可以在抽象类的基础上进一步定义具体的类 实体类是用于对必须存储的信息和相关行为建模的类.实体对象(实体类的实例)用于保存和更新一些现象的有关信息,

hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. vi /etc/profile 在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_H

三种创建XMLHttpRequest对象的方法

XMLHttpRequest对象,也就是Ajax交互的核心对象. 这里列举三种创建Ajax对象的方法. 第一种: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples&

三种Div高度自适应的方法

让DIV高度自适应,这是在网页设计中常遇到的问题,为了给大家提供参考,这里提供3种div高度自适应的方法:一是JS法.二是背景图填充法.三是"补丁大法"(比较变态). 1.JS法 代码如下.原理:用JS判断左右DIV的高度,若不一致则设为一致.框架资源分享 Java代码   <div style="width:500px;background:#cccccc;height:0px;"> <div id="right" style

web三种跨域请求数据方法

web三种跨域请求数据方法 以下测试代码使用php,浏览器测试使用IE9,chrome,firefox,safari <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.

三种微信爆粉的方法,一天加满5000好友

2018年,朋友圈或各种社交场合总时不时冒出"某某做微信爆粉,一天加满5000好友"的说法.这确实是存在的,但严重违规.突破每日添加好友数量上限的双向爆粉,必须使用修改微信底层协议的第三方软件才能实现.今天,无极颜汐教你三种微信爆粉的方法,一天加满5000好友. 微信爆粉的原理是什么?识别微信号ID有很多类型,如:微信号.手机号.QQ号.二维码等,但这些只是肉眼可见的表面数据.实际上,微信的服务器里还有一套识别每个微信号的内部代码数据,如:v1v2数据与wxid.v1v2数据可以理解为

类的三种成员与继承

对于类而言,一共有三种成员类型,分别为private,protected,public.其中,如果数据成员的类型为private,可以默认不写.对于在类外使用的情况,private和protected是一致的,均不可以由外部直接访问,而public所包含的成员是可以由外部直接访问的.下面给出一个基本的例子. 12345678910111213141516171819202122 class Time { private: int hour; int minute; protected: int

类的各种自带方法,静态方法,属性方法,类方法等

#coding=utf-8 class Dog(object): ''' 类的描述 ''' def __init__(self,name): self.name = name self.__food = None @staticmethod #实际上跟类没什么关系,单纯的函数,但是必须通过类名来调用 def eat(food): print ('%s is eating %s'%('xiaohuang',food)) @classmethod #类方法,只能访问类变量,不能访问实例变量 def