-
types.MethodType() 把一个函数变为一个方法 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同, 函数调用不需要传入 self,但是方法调用需要传入 self查看全部
-
当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。查看全部
-
类属性:静态查看全部
-
Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。 默认参数一定要用不可变对象,如果是可变对象,运行会有逻辑错误! 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple; **kw是关键字参数,kw接收的是一个dict。 以及调用函数时如何传入可变参数和关键字参数的语法: 可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3)); 关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。 使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。 setattr(): setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。 setattr()方法接受3个参数:setattr(对象,属性,属性的值)查看全部
-
Python提供的模块管理工具 -easy_install -pip(推荐,已内置到Python2.7.9) pip install 模块名 安装第三方模块,然后通过 import 导入 Python官网搜索web.py 可以找到对应模块中哪些函数查看全部
-
模块和包 import导入查看全部
-
使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。查看全部
-
要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn查看全部
-
内置的@语法是为了简化装饰器调用 @new_fn def f1(x): return x*2 相当于 def f1(x): return x*2 f1 = new_fn(f1)查看全部
-
装饰器: 高阶函数:接收一个函数,对其包装,返回新的函数 Python内置的@语法可以简化装饰器的调用 装饰器作用: 简化代码,避免重复编写代码 打印日志 检测性能 数据库事务 URL路由查看全部
-
这例题都没看懂。查看全部
-
通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。查看全部
-
直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。查看全部
-
p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。查看全部
-
实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的: class Person(object): def __init__(self, name): self.__name = name def get_name(self): return self.__name get_name(self) 就是一个实例方法,它的第一个参数是self。__init__(self, name)其实也可看做是一个特殊的实例方法。 调用实例方法必须在实例上调用: p1 = Person('Bob') print p1.get_name() # self不需要显式传入 # => Bob查看全部
举报
0/150
提交
取消