Python 面向对象2
静态方法
静态方法相当于函数,可以不创建对象直接引用
如果在类里面用静态方法,相当于函数,可以不创建对象,直接是用类里面的方法,你就当它是函数。
静态方法名义上归类管理,实际上静态方法访问不了类或实例种的任何属性
静态方法属于类
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的更多相关文章
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- python面向对象进阶(八)
上一篇<Python 面向对象初级(七)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- python 面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使 ...
- python 面向对象编程学习
1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...
- Python面向对象详解
Python面向对象的"怜人之处" Python的待客之道--谁能进来 Python的封装--只给你想要的 Python的继承--到处认干爹 Python的多态--说是就是
- python 面向对象和类成员和异常处理
python 面向对象 你把自己想象成一个上帝,你要创造一个星球,首先你要把它揉成一个个球,两个直径就能创造一个球 class star: '''名字(name),赤道直径(equatorial di ...
- python 面向对象学习
------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...
- 初识python面向对象
一.初识python面向对象: class Person: #使用class关键字定义一个类 age=0 #类变量(静态变量) def eat(self,food): #定义一个方法 self.age ...
- python 面向对象、特殊方法与多范式、对象的属性及与其他语言的差异
1.python 面向对象 文章内容摘自:http://www.cnblogs.com/vamei/archive/2012/06/02/2532018.html 1.__init__() 创建对 ...
随机推荐
- PyCharm 3.4.1注册码
PyCharm 3.4下载地址:http://www.jetbrains.com/pycharm/download/index.html PyCharm 3.0 注册码 PyCharm3 序列号 Li ...
- ccs3
[ 布局 Layout] display:none | intel |block | list-item | inline-block| [ 取值:] onne:隐藏对象.与visibility属性的 ...
- C++ Daily 《6》---- 类静态对象与函数静态对象
C++ 的一个哲学基础是,你不应该为你使用的东西付出代价. class 拥有一个 static 成员,即使从未被用到,它也会被构造和析构: 而 函数拥有一个 static 成员, 如果这个函数从未被调 ...
- Java里面,反射父类里面数字类型字段,怎么set值
Java里面,反射父类里面数字类型字段,怎么set值,我的做法是这样: /** * TODO 直接设置对象属性值, 忽略private/protected 修饰符, 也不经过setter * @aut ...
- 设置时间&时区
设置时间之前要先了解一件事,时间分为系统时间与硬件时间 如果硬件时间与系统时间不相同的话,经常会发现自己写的程序时间可能对不上 首先修改硬件时间 1)修改时区 输入命令: tzselect 按照指示选 ...
- DES带IV向量加密解密工具
链接:http://pan.baidu.com/s/1kVAV80J 密码:sgys 鉴于网上的DES加密解密都是不带IV向量的 我就自制了一个带IV向量的DES加密解密的小工具 © 2016-20 ...
- 第三次作业 GIThub操作
一.Git 客户端操作 1.在project文件夹初始化一个repository 2.添加并提交readme.txt 3.修改并查看状态 4.多次修改并提交 5.创建分支mv1并checkout至该分 ...
- Init
alloc负责分配对象空间,init负责初始化对象.init是实例方法,返回的是初始化后的对象的地址.init是NSObject的初始化方法. 子类不实现init,会执行由NSObject定义的ini ...
- [驱动开发] windbg符号表
新建"环境变量 - 系统":_NT_SYMBOL_PATH 值为:SRV*FullDirPath*http://msdl.microsoft.com/download/symbol ...
- 点击其它地方DIV隐藏
$(document).bind('click',function(e){ var e = e || window.event; //浏览器兼容性 var elem = e.target || e.s ...