静态方法

静态方法相当于函数,可以不创建对象直接引用

如果在类里面用静态方法,相当于函数,可以不创建对象,直接是用类里面的方法,你就当它是函数。

静态方法名义上归类管理,实际上静态方法访问不了类或实例种的任何属性

静态方法属于类

class Foo:
def __init__(self):
pass @staticmethod
def func(): # 去掉self
print('我是静态方法') Foo.func()

类方法

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

2、类方法至少要有一个参数,cls

3、类方法是用类进行调用

class Foo:
@classmethod
def f1(cls):
print(cls) Foo.f1()

属性方法

1、把一个类里面的方法,变化成字段

class Foo:
def __init__(self, name):
self.name = name @property
def fun(self):
print('%s是做属性例子' % self.name) f = Foo('tom')
f.fun #调用时候去掉括号

2、由于调用时候没有括号,那就不能在有参数的方法进行设置

3、属性赋值

class Foo:
def __init__(self, name):
self.name = name
self.value = None @property
def fun(self):
print('%s是做属性例子' % self.value) @fun.setter
def fun(self, value): # 名字必须一致,位置必须在后边
self.value = value f = Foo('tom')
f.fun
f.fun = 'ccccc'
f.fun

4、删除

class Foo:
def __init__(self, name):
self.name = name
self.value = None @property
def fun(self):
print('%s是做属性例子' % self.value) @fun.setter
def fun(self, value): # 名字必须一致,位置必须在后边
self.value = value @fun.deleter # 删除
def fun(self):
del self.value
print('del') f = Foo('tom')
f.fun
f.fun = 'ccccc'
f.fun
del f.fun
f.fun # 到这步就报错了

Python 面向对象2的更多相关文章

  1. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  2. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  3. python面向对象进阶(八)

    上一篇<Python 面向对象初级(七)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  4. python 面向对象(进阶篇)

    上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...

  5. python 面向对象编程学习

    1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...

  6. Python面向对象详解

    Python面向对象的"怜人之处" Python的待客之道--谁能进来 Python的封装--只给你想要的 Python的继承--到处认干爹 Python的多态--说是就是

  7. python 面向对象和类成员和异常处理

    python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...

  8. python 面向对象学习

    ------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...

  9. 初识python面向对象

    一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...

  10. python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异

    1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html   1.__init__() 创建对 ...

随机推荐

  1. BZOJ 1668 馅饼里的财富

    RT. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  2. C#单链表

    顺序表是用地址连续的存储单元顺序存储线性表中的各个数据元素, 逻辑上相邻的数据元素在物理位置上也相邻.因此,在顺序表中查找任何一个位置上的数据元素非常方便, 这是顺序存储的优点. 但是, 在对顺序表进 ...

  3. python27(32位)安装RTree

    一开始用pip install -r requirements.txt 报错:OSError: could not find or load spatialindex_c.dll 1)从以下链接下载编 ...

  4. python 字符串内建函数

    方法 描述 string.capitalize() 把字符串的第一个字符大写 string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 string ...

  5. Cosh.1

    不管  先查壳 是VC++的 拿到OD  看看    经过跟踪 发现一个挺神奇的地方 再随便单步单步看看,发现CreateFileA返回的值总是-1 0040137A      83F8 00     ...

  6. oracle数据库卸载(需要完全卸载oracl才能重装)

    1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHome81->Oracle I ...

  7. Cocos2d-x win7 + vs2010 配置图文详解

    Cocos2d-x win7 + vs2010 配置图文详解 下载最新版的cocos2d-x.打开浏览器,输入cocos2d-x.org,然后选择Download,本教程写作时最新版本为cocos2d ...

  8. 和efast对接

    (1)    efast加入白名单 (2)    外网环境对接外网环境 内网环境对接内网环境 (3)    使用拉取的数据下单 才能同步到efast 4 档案同步 数据库 sys_ishop_sync ...

  9. js中的break ,continue, return (转)

    面向对象编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢? ...

  10. Java篇-File类之常用操作

    /** * */ package com.io.file; import java.io.File; import java.io.IOException; /** * <pre> * & ...