为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 首先可以用 type() 函数获取变量的类型,它返回一个 Type 对象: >>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'> 其次,可以用 dir() 函数获取变量的所有属性: >>> dir(123) # 整数也有很多属性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] 如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了: >>> getattr(s, 'name') # 获取name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam' >>> getattr(s, 'age') # 获取age属性,但是属性不存在,报错: >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • isinstance(object, class-or-type-or-tuple) 如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。
    查看全部
  • 要在class中定义类方法,需要这么写: class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __init__(self, name): self.name = name Person.count = Person.count + 1 print Person.how_many() p1 = Person('Bob') print Person.how_many()
    查看全部
  • 实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。 对类实例化后,通过实例对类属性更改,会使其变为实例属性。
    查看全部
  • 如果一个属性由双下划线开头(__),该属性就无法被外部访问
    查看全部
  • 定义Person类的__init__方法,除了接受 name、gender 和 birth 外,还可接受任意关键字参数,并把他们都作为属性赋值给实例。
    查看全部
  • setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性。 getattr(object,name,default): 作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值;如果属性name不存在,则触发AttribetError异常或当可选参数default定义时返回default值。
    查看全部
  • 要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。
    查看全部
    0 采集 收起 来源:python中 __len__

    2015-11-24

  • 可变参数**k的循环遍历 for k,v in kw.iteritems():
    查看全部
  • class Student(Person): def __init__(self,name,gender,score): super(Student,self).__init__(name,gender) self.score = score
    查看全部
  • iteritems()迭代器函数
    查看全部
  • *args代表任意个普通参数(tuple元组),**kw代表任意个用=号指定默认值的参数(dict字典)
    查看全部
  • for k, v in kw.iteritems(): setattr(self, k, v)
    查看全部
  • functools.partial就是帮助我们创建一个偏函数的,不需要我们自己定义int2(),可以直接使用下面的代码创建一个新的函数int2: >>> import functools >>> int2 = functools.partial(int, base=2) >>> int2('1000000') 64 >>> int2('1010101') 85
    查看全部
    0 采集 收起 来源:python中偏函数

    2018-03-22

  • Python内置的functools可以用来自动化完成这个“复制”的任务: import functools def log(f): @functools.wraps(f) def wrapper(*args, **kw): print 'call...' return f(*args, **kw) return wrapper 相当于: wrapper.__name__ = f.__name__ wrapper.__doc__ = f.__doc__
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!