python 面向对象 类方法,静态方法,property
- property
内置装饰器函数 只在面向对象使用
把方法当初属性使用(方法不加参数) 例子:
class Rectangle:
def __init__(self,long,wide,color):
self.long = long
self.wide = wide
self.__color = color @property
def area(self):
return long*wide @property
def color(self):
return self.__color @color.setter
def color(self,new_color):
self.__color = new_color @color.deleter
def color(self):
del self.__color r = Rectangle(10,20,'green')
print(r.area)
r.color = 'red'
del r.color - 类方法
#classmothed
#把一个方法变成类中的方法,这个方法可以直接被类调用,不需要依托任何对象
#当这个方法的操作只设计静态属性的时候,就该使用classmothed 例子:
class Person:
__type = 'Animal' @classmothed
def getType(cls):
return cls.__type = 'Animal' - 静态方法
静态方法是类中的函数,不需要实例。静态方法主要是用来存放逻辑性的代码,主要是一些逻辑属于类,但是和类本身没有交互,即在静态方法中,不会涉及到类中的方法和属性的操作。可以理解为将静态方法存在此类的名称空间中。事实上,在python引入静态方法之前,通常是在全局名称空间中创建函数。 例子:
import time
class TimeTest(object):
def __init__(self,hour,minute,second):
self.hour = hour
self.minute = minute
self.second = second
@staticmethod
def showTime():
return time.strftime("%H:%M:%S", time.localtime()) print(TimeTest.showTime())
t = TimeTest(2,10,10)
nowTime = t.showTime()
print(nowTime) 使用静态函数,既可以将获得时间的函数功能与实例解绑,我想获得当前时间的字符串时,并不一定需要实例化对象,此时更像是一种名称空间。
python 面向对象 类方法,静态方法,property的更多相关文章
- Python面向对象高级编程-@property
使用@property 在绑定属性时,如果直接把属性暴露出去,虽然写起来简单,但是没法检查参数,导致可以把成绩随便改: >>> class Student(object): pass ...
- Python面向对象之静态方法、静态方法与类方法
静态属性: 类调用函数属性时,需要先将类实例化,再将实例作为函数属性传入:类的实例调用函数属性时需要在后面加括号. class Building: def __init__(self, name, o ...
- python面向对象高级:@property
@property 把方法『变成』了属性,广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性. 最大的作用就是既能检查参数,又可以用类 ...
- Python面向对象 | 类方法 classmethod
类方法:必须通过类的调用,而且此方法的意义:就是对类里面的变量或者方法进行修改添加. 例一个商店,店庆全场八折,代码怎么写呢? class Goods: __discount = 0.8 # 折扣 ...
- python 实例化 类方法 静态方法 成员变量 实例方法 等调用
1.参考代码如下 # coding:utf-8 class student: # 成员变量 ok = None like = '八戒你瘦了' # 实例方法 def __init__(self): # ...
- Python面向对象静态方法,类方法,属性方法
Python面向对象静态方法,类方法,属性方法 属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法: ...
- Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass
Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...
- python 面向对象专题(五):私有成员、类方法、静态方法、属性、isinstance/issubclass
https://www.cnblogs.com/liubing8/p/11325421.html 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubc ...
- python基础——特性(property)、静态方法(staticmethod)和类方法(classmethod)
python基础--特性(property) 1 什么是特性property property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值 import math class Circl ...
随机推荐
- java web 初尝遇到的坑
1. 配置 tomcat 7 + Dynamic web model version 3 发现写 web.xml 导致 tomcat 不能启动. 解决办法:tomcat 7 之后有两种配置 servl ...
- create raid5
# umout 所有数据disk for i in {1..11};do umount /disk$i;done # 修改/etc/fstab,注释掉 /dev/sd[b-l] vim /etc/fs ...
- BZOJ 1717 [USACO06DEC] Milk Patterns (后缀数组+二分)
题目大意:求可重叠的相同子串数量至少是K的子串最长长度 洛谷传送门 依然是后缀数组+二分,先用后缀数组处理出height 每次二分出一个长度x,然后去验证,在排序的后缀串集合里,有没有连续数量多于K个 ...
- java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
缺少slf4j的包: 添加依赖: 代码: 1 <dependency> 2 <groupId>org.slf4j</groupId> 3 <artifactI ...
- ASP.NET-未解决的问题
001.((FormsIdentity)User.Identity).Ticket.UserData 用ASP.NET后台格式化成json数据后传回去的数据有"这样的符号 002.HT ...
- POJ——T1679 The Unique MST
http://poj.org/problem?id=1679 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 30120 ...
- 宿主机mac os无法连接到虚拟机centos
宿主机: Mac OS 10.9.2 虚拟机: [root@localhost ~]# cat /etc/redhat-release CentOS release 6.4 (Final) [root ...
- Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动
在上一篇文章<Android自己定义组件系列[3]--自己定义ViewGroup实现側滑>中实现了仿Facebook和人人网的側滑效果,这一篇我们将接着上一篇来实现双面滑动的效果. 1.布 ...
- cmd文件操作-添加
新建文件夹 mkdir 文件名 mkdir wenjianjia 新建文件 type NUL > 文件名.文件类型
- android:异步任务asyncTask介绍及异步任务下载图片(带进度条)
为什么要用异步任务? 在android中仅仅有在主线程才干对ui进行更新操作.而其他线程不能直接对ui进行操作 android本身是一个多线程的操作系统,我们不能把全部的操作都放在主线程中操作 .比方 ...