1.类方法不能访问实例变量,只能访问类变量。

class Dog(object):
name = 'wdc'
def __init__(self,name):
self.name = name def eat(self): #普通方法
print(self)
print('{}在吃东西~'.format(self.name)) @classmethod #类方法
def eatt(self):
print(self) #打印self发现传进来的self不是实例本身,而是类本身
print('{}在吃东西'.format(self.name)) a = Dog('yhf')
a.eat()
a.eatt()

2.类方法的应用

class Dog(object):
dog_num = 0
def __init__(self,name):
self.name = name
self.__add_dog(self) #实例化时调用类方法add_dog,可以将实例化的对象传递进入类方法 @classmethod
def __add_dog(cls,obj):
cls.dog_num += 1
print('生成一只狗:{},共{}只狗'.format(obj.name,cls.dog_num)) a1 = Dog('yhf1')
a2 = Dog('yhf2')
a3 = Dog('yhf3')

3.静态方法

  :不能访问类变量,也不能访问实例变量

class Student(object):
def __init__(self,name):
self.name = name @staticmethod
def fly():
print('fly...') @staticmethod
def walk(self):
print('{} walking...'.format(self.name)) a = Student('wdc')
a.fly()
a.walk(a) #静态方法必须自己传递对象参数

python_面向对象——类方法和静态方法的更多相关文章

  1. python 面向对象 类方法,静态方法,property

    property 内置装饰器函数 只在面向对象使用 把方法当初属性使用(方法不加参数) 例子: class Rectangle: def __init__(self,long,wide,color): ...

  2. Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面 ...

  3. Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass

    Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...

  4. python 面向对象专题(五):私有成员、类方法、静态方法、属性、isinstance/issubclass

    https://www.cnblogs.com/liubing8/p/11325421.html 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubc ...

  5. python面向对象学习(六)类属性、类方法、静态方法

    目录 1. 类的结构 1.1 术语 -- 实例 1.2 类是一个特殊的对象 2. 类属性和实例属性 2.1 概念和使用 2.2 属性的获取机制 3. 类方法和静态方法 3.1 类方法 3.2 静态方法 ...

  6. day25、 静态属性、类方法、静态方法、组合、继承、

    一. 静态属性.类方法.静态方法 1.1静态属性 class Room: def __init__(self,name,owner,width,length): self.name=name self ...

  7. python 浅析类方法与静态方法

    类方法,静态方法的定义 Python 是双面向的,既可以面向函数编程,也可以面向对象编程,所谓面向函数就是单独一个. py 文件,里面没有类,全是一些函数,调用的时候导入模块,通过模块名.函数名()即 ...

  8. python类:类方法和静态方法

    http://blog.csdn.net/pipisorry/article/details/49516185 面相对象程序设计中,类方法和静态方法是经常用到的两个术语.逻辑上讲:类方法是只能由类名调 ...

  9. Python学习手册之数据封装、类方法、静态方法和属性函数

    在上一篇文章中,我们介绍了 Python 的内部方法.操作符重载和对象生命周期,现在我们介绍 Python 的数据封装.类方法.静态方法和属性函数.查看上一篇文章请点击:https://www.cnb ...

随机推荐

  1. linux vi指令常用

    1:退出时提示:No write since last change (add ! to override):解决方法:直接ctrl + z退出

  2. linux 加载新的磁盘(卷组)

    pvcreate /dev/vdbvgcreate datavg /dev/vdblvcreate -n datalv -L 99.8G datavgmkfs.ext3 /dev/datavg/dat ...

  3. windows密码凭据

  4. 怎样检测浏览器是否安装了某个插件, 比如flash

    首先, 我们可以获取浏览器安装的所有在插件: navigator.plugins 它会返回一个类似数组的对象, 包含所有已安装插件的具体信息. navigator.plugins; 然后我们可以通过正 ...

  5. Python Unittest进行接口测试的简单示例

    今年肯定是要把Python学到一定程度的,否则感觉自己混不下去了,那就开始半挣扎的咸鱼生活吧. ---------------------------------------------------- ...

  6. 【ES6】数组的扩展

    1.Array.from(): 将伪数组对象和遍历的对象转为真数组 如果一个对象的键都是正整数或者0,并且有 Length属性,那么这个对象很想数组,称它为伪数组. 伪数组: let obj = { ...

  7. 前端开发 Vue -4promise解读1

    JS(JavaScript) - Promise 2015年6月, ES2015(即 ECMAScript 6.ES6) 正式发布.其中 Promise 被列为正式规范,成为 ES6 中最重要的特性之 ...

  8. MIG(ddr3)工程报错解决:IO constraint DQS_BIAS\Multiple Driver Net

    现象 在布线自己写的ddr3压力测试代码时,报如下错误. [Constraints 18-586]IO constraint DQS_BIAS with a setting of TRUE for c ...

  9. Intellij里检出svn报错找不到svn解决办法

    Intellij里检出svn报错找不到,解决办法: 1. 安装svn客户端: 2. 去掉settings->version control->subversion里的use command ...

  10. USB原理简单叙述

    USB简介: USB的几种版本: 1. USB 1.0:速度 1.5Mb/s 2. USB 1.1:速度 12Mb/s 3. USB 2.0:速度 60MbB/s 4. USB 3.0:速度 640M ...