1、python其实有3个方法,即实例方法,类方法(classmethod),静态方法(staticmethod)

def foo(x): 一般函数
  print "executing foo(%s)"%(x)

class A(object):

  def foo(self,x): 实例方法
    print "executing foo(%s,%s)"%(self,x)

  @classmethod
  def class_foo(cls,x):类方法
    print "executing class_foo(%s,%s)"%(cls,x)

  @staticmethod
  def static_foo(x): 静态方法
    print "executing static_foo(%s)"%x

a=A()

这里先理解下函数参数里面的self和cls.这个self和cls是对类或者实例的绑定,对于一般的函数来说我们可以这么调用foo(x),这个函数就是最常用的,它的工作跟任何东西(类,实例)无关.对于实例方法,我们知道在类里每次定义方法的时候都需要绑定这个实例,就是foo(self, x),为什么要这么做呢?因为实例方法的调用离不开实例,我们需要把实例自己传给函数,调用的时候是这样的a.foo(x)(其实是foo(a, x)).类方法一样,只不过它传递的是类而不是例,A.class_foo(x).注意这里的self和cls可以替换别的参数,但是python的约定是这俩,还是不要改的好.

对于静态方法其实和普通的方法一样,不需要对谁进行绑定,唯一的区别是调用的时候需要使用a.static_foo(x)或者A.static_foo(x)来调用

a对象和A类    实例方法   类方法        静态方法
a = A()    a.foo(x)    a.class_foo(x)   a.static_foo(x)
A        不可用    A.class_foo(x)   A.static_foo(x)

suppose 假设,猜想

2字典,访问不存在的键,则会报错,可以使用get方法,还可以设置默认值

  age = info.get('age')
  age                                                 #'age'键不存在,所以age为None
  type(age)
  <type 'NoneType'>
  age = info.get('age', 18) # 若info中不存在'age'这个键,就返回默认值18
  age
  18
  字典操作
  修改
  info = {'name':'班长', 'id':100, 'sex':'f', 'address':'地球亚洲中国北京'}

  info['id'] = 200

  添加
  info['age']= 28

  获取

  info.get(age)

  删除

  del info['name']

  删除整个字典

  del info

  clear清空整个字典

  info.clear()      清空后 { }

  常用字典操作

  a={"name":suqin,"age":18}

  len(a)

  a.keys()   返回列表

  a.values()     返回列表

  a.items()     返回(键:值)元祖的列表

     a.has_key('name') 返回True | false

  字典的遍历

  a={"name":suqin,"age":18}

                          for key in a.keys():   for value in a.values():

  for item in a.items():
      print(item)
  >> ('name', suqin)
  >> ('age', 18)

  for key,value in a.items():
  进行的拆包

  想一想,如何实现带上下标索引的遍历enumerate()

  >>> list = ['a', 'b', 'c', 'd']
  >>> for i, chr in enumerate(list):
  ... print i, chr
  ...
  0 a
  1 b
  2 c
  3 d

  字符串遍历
  >>> a_str = "hello itcast"
  >>> for char in a_str:
  ... print(char,end=' ')
  ...
  h e l l o i t c a s t

  元组遍历
  >>> a_turple = (1, 2, 3, 4, 5)
  >>> for num in a_turple:
  ... print(num,end=" ")
  1 2 3 4 5

转载于:https://www.cnblogs.com/lvhonglei-python/p/7586736.html

静态,类,实例方法,字典相关推荐

  1. Python中类方法、类实例方法、静态方法,私有属性和私有方法有何区别?

    类方法 是类对象的方法,在定义时需要在上方使用 @classmethod 进行装饰,形参为cls,表示类对象,类对象和实例对象都可调用. 使用格式: 对类的属性进行操作,就要用类的方法. @class ...

  2. Ext学习笔记02 - 构造方法,类继承,类实例方法重写

    刚刚走了个大弯路,朋友们见笑,我这见识实在太少了,开始想找个有语法提示的IDE,就直接想到了Aptana,下载一个最新版本,然后就弹出来一大堆东西要更新,更新就更新吧,更新一半就报错,看他给的提示,说 ...

  3. php类实例方法静态方法,PHP类中的静态方法使用实例

    在php中静态方法我们就直接在函数或变量前加一个static就可以了,使用的时候和静态变量差不多,不需要实例化,直接用::调用了,下面我来给大家举几个关于静态方法实例. PHP也不例外!所谓静态方法( ...

  4. python中类方法与实例方法的区别-python中类方法、类实例方法、静态方法的使用与区别...

    1.如果你需要用实例来调用你的方法,那么在定义方法的时候,一定要把第一个参数设置成为self: ?2.如果你需要使用静态方法,那么你需要在方法前面加上@staticmethod修饰符: ?3.如果要使 ...

  5. python 类方法 静态方法_python中类方法、类实例方法、静态方法的使用与区别

    注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: class Foo: def __init__(self, name): self.name = name ...

  6. 实例对象静态对象实例方法静态方法

    实例对象:通过构造函数创建出来,实例化的对象 静态对象:不需要创建,直接就是一个对象,方法(静态方法)直接通过这个对象名字调用. 实例方法必须通过实例对象调用 静态方法必须通过大写的对象调用 转载于: ...

  7. python中的字典和类的区别_Python:我应该使用类还是字典?

    我认为每个人的用法对我来说太主观了,所以我只是坚持数字. 我比较了创build和更改字典中的variables,new_style类和new_style类带槽的时间. 这是我用来testing它的代码 ...

  8. java字典类_Java字典类

    java字典类 Java Dictionary is an abstract class. It was the parent class for any key-value mapping obje ...

  9. Python把类当做字典来访问

    定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下: class A:def __init__(self):se ...

  10. python3 类中字典类型的实例变量被“篡改”

    先看下面的例子 class A(object):va = ""def foo(self,str):self.va = strdef defPrint(self):print(sel ...

最新文章

  1. Hadoop-2.2.0学习之三YARN简介
  2. Java代码在计算机中的三个阶段与反射
  3. vue动画效果配置和弹层css sticky footer
  4. windows.h有哪些函数
  5. PSR-2 代码风格规范
  6. 针对于lvs分发mysql的监控
  7. 学java出来工作会很忙吗?
  8. 移动互联网之路-李晓斌
  9. 防止开源的加拉帕戈斯综合症,系统软件和开源都是手段不是目的
  10. spring mvc---controller返回值
  11. delphi 快速导出excel
  12. 笔记本win10系统部分应用显示模糊的问题——已解决!
  13. oracle中cube的作用,Oraclerollup和cube分析
  14. 传统医美身处风口浪尖,互联网医美如何拯救?
  15. BT401蓝牙模块KT1025A蓝牙芯片用户修改BLE的广播包数据的说明以及方法
  16. 51CTO学院 oracle相关视频地址
  17. 中文分词:原理及分词算法
  18. 产品读书《幕后产品:打造突破式产品思维》
  19. 2021年中国日用玻璃生产现状及竞争格局分析,行业朝“五化”方向发展「图」
  20. NVIDA英伟达公司--(夜的第一章)

热门文章

  1. 2021-06-23元素的排列,浮动和display
  2. oracle查询显示小写,oracle查询区分大小写
  3. springboot 优雅停机_Spring Boot 程序的优雅停机[译文]
  4. 区块链 交易怎么验证是否被篡改 SPV验证
  5. 2020-07-17
  6. java memcached delete_Memcached删除/Delete数据
  7. 怎么调用获取被创建的预制体_PostgreSQL为每一个backend创建的cache
  8. Maven生命周期详解及常用命令
  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-2.微信扫一扫功能开发前期准备...
  10. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-7.接口配置文件自动映射到属性和实体类配置...