类的成员

一、字段

- 字段可以分为'普通字段'和'静态字段'两种

- 普通字段(保存在对象中,执行时只能通过对象来进行访问)

- 静态字段(保存在类中,在内存中只保存一份数据(可以有效地节约内存的空间),执行时可以通过对象来访问,也可以通过类来访问)

class Province:
country = '中国' # 静态字段 def __init__(self, name):
self.name = name # 普通字段 def show(self): # 方法
print(self.name) Beijing = Province('北京')
Shanghai= Province('上海')
print(Beijing.name, Province.country) # 通过类来访问静态对象country
print(Shanghai.name,Shanghai.country) # 通过对象来访问静态对象country
===>北京 中国
===>上海 中国

二、方法

- 方法可以分为三种'普通方法'、'静态方法'以及'类方法'三种

- 普通方法,保存在类中,通过对象来调用,self参数为对象

- 静态方法,保存在类中,通过类来直接调用

静态方法的特殊之处:1、self 参数不再是必须的

            2、在方法前加上装饰器 @staticmethod

            3、也可以传入对应的参数

- 类方法,    保存在类中,通过类来直接调用,cls参数为类

类方法的特殊之处:    1、需要参数,一般使用为 cls

             2、在方法前加上装饰器 @classmethod

应用场景:

- 当对象中需要保存值,调用方法时需要使用对象中的值,此时使用普通方法更为合适

- 当不需要任何对象中的值时,使用静态方法或类方法比较合适

class Method:
# 普通方法
def nml(self):
print('普通方法') # 静态方法
@staticmethod
def stm():
print('静态方法') # 类方法
@classmethod
def cls(cls):
# 一般在类方法中的参数为cls ,cls 是类名
print('类方法') Method.stm()
Method.cls()
===>静态方法
===>类方法

三、属性(特性)

属性,保存在类中

class Info:
@property
def med1(self):
print('med1') def med2(self):
print('med2')
def med3(self,v):
print(v)
def med4(self):
print('med4') per = property(fget=med2,fset=med3,fdel=med4) obj = Info()
obj.med1
ret = obj.per # fget的访问方式
obj.per = 'med3' # fset的访问方式
del obj.per # fdel的访问方式
===>med1
===>med2
===>med3
===>med4

最新文章

  1. Web.xml配置详解
  2. LightOJ1171 Knights in Chessboard (II)(二分图最大点独立集)
  3. Linux 中如何卸载已安装的软件(转载)
  4. 自动布局之autoresizingMask使用详解(Storyboard&Code)
  5. struts的DevMode模式
  6. NDK与JNI
  7. selenium 一个简单的流程
  8. OracleServiceORCL服务不见了怎么办
  9. PCIE_DMA实例三:Xilinx 7系列(KC705/VC709)FPGA的EDK仿真
  10. C# 处理PPT水印(一)——添加水印效果(文字水印、图片水印)
  11. python 全栈开发,Day15(递归函数,二分查找法)
  12. Android开发(十九)——ViewFlipper中的onClick事件和onFling事件冲突
  13. python获取文件路径、文件名、后缀名的实例
  14. avalon源码阅读(1)
  15. scala 学习笔记二 方法与函数
  16. 桶排序——PowerShell版
  17. DataTable某一列的最大值
  18. Extjs window组件 拖动统制
  19. oracle连接池问题
  20. supervisord的安装

热门文章

  1. Java SimpleDateFormat对象的parse方法处理12点变成00点
  2. Python学习---函数的学习1209[all]
  3. December 08th 2016 Week 50th Thursday
  4. apt 安装 tomcat
  5. 关于由ajax返回的数据在for循环中只能取到最后一个数的问题
  6. Angular4 @HostBinding @HostListener
  7. html转canvas html2canvas.js
  8. 组合数取模方法总结(Lucas定理介绍)
  9. swift 第一个IOS应用程序
  10. 使用Qt框架开发http服务器问题的记录