• 静态,类,实例方法,字典


    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

    life is short,i need python
  • 相关阅读:
    Re:从零开始的领域驱动设计
    领域驱动设计和Spring
    深入JVM分析spring-boot应用hibernate-validator
    深入Spring Boot:那些注入不了的Spring占位符(${}表达式)
    Android 使用OKhttp获取response时遇到的坑
    Android EditText组件drawableLeft属性设置的图片和hint设置的文字之间的距离
    Android 自定义spinner下拉框实现的实现
    Android You need to use a Theme.AppCompat theme (or descendant) with this activity.
    Android中取消GridView & ListView默认的点击背景色
    Android 显示 PDF 文件
  • 原文地址:https://www.cnblogs.com/lvhonglei-python/p/7586736.html
Copyright © 2020-2023  润新知