-
class Person(object):
def __init__(self, name, score):
self.name = name
self.score = score
self.get_grade = lambda: 'A'p1 = Person('Bob', 90)
print p1.get_grade
print p1.get_grade()可以直接在生成实例的时候创建函数对象
查看全部 -
class Person(object):
def __init__( self,name, gender, birth,**kw):
self.name = name
self.gender = gender
self.birth = birth
for k, v in kw.iteritems():
setattr(self, k, v)设定任意多的参数def __init__( self,name, gender, birth,**kw):
for k, v in kw.iteritems(): setattr(self, k, v)
查看全部 -
访问限制
Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。
特殊属性:属性以"__xxx__"的形式定义,那它又可以被外部访问
查看全部 -
from math import log
from logging import log as logger # logging的log现在变成了logger
print log(10) # 调用的是math的log
logger(10, 'import from logging') # 调用的是logging的log查看全部 -
import time
def performance(unit):
def fn(f):
def wapper(*args, **kw):
t1=time.time()
r=f(*args, **kw)
t2=time.time()
t = (t2 - t1) * 1000 if unit=='ms' else (t2 - t1)
print 'call %s() in %f %s' % (f.__name__, t, unit)
return r
return wapper
return fn
@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))print factorial(10)
查看全部 -
**kw代表的是所有的类似 job='student'这样的参数,然后是以dict的形式传递给函数。等号前面的值作为dict中的key,等号后面的值作为dict中对应的value。
*args代表的是剩余的不带等号的参数,用元组的形式传递给函数内部处理。
class Person(object):
def __init__(self,name,gender,birth,**kw):
self.name = name
self.gender = gender
self.birth = birth
for k, v in kw.iteritems():
setattr(self, k, v)
xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')
print xiaoming.name
print xiaoming.job
查看全部 -
初始化实例属性
class Person(object): def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth
每个Person实例在创建时,都会有 name、gender 和 birth 这3个属性,并且,被赋予不同的属性值,访问属性使用.操作符
print xiaoming.name # 输出 'Xiao Ming' print xiaohong.birth # 输出 '1992-2-2'
查看全部 -
创建实例属性:
xiaoming = Person() xiaoming.name = 'Xiao Ming' xiaoming.gender = 'Male' xiaoming.birth = '1990-1-1'
实例属性可以像变量一样操作
xiaohong.grade = xiaohong.grade + 1
查看全部 -
定义类并创建实例:
class Person(object): pass
class定义类,类名大写字母开头,(object)表示该类是从哪个类继承下来的。
创建实例 类名+()
xiaoming = Person() xiaohong = Person()
查看全部 -
面向对象变成—类和实例
类:用于定义抽象类型
class Person:
pass
实例:根据类的定义被创建出来
xiaoming = Person()
xiaojun = Person()
xiaohong = Person()
面向对象变成—数据封装
class Person:
def _init_(self,name):
self.name = name
p1 = Person('Xiao Ming')
p2 = Person('Xiao Jun')
p3 = Person('Xiao Hong')
查看全部 -
模块管理工具
easy_install
pip(推荐,已内置到python2.7.9)
安装第三方模块
命令提示符》输入命令pip install web.py
检测是否安装成功》输入命令import web.py未报错
查看全部 -
使用_future_
from _future_ import division
新版本的特性与旧版本不兼容时,该特性在旧版本中添加到_future_中,以便旧代码能在旧版本中测试新特性。
查看全部 -
动态导入模块:
try: from cStringIO import StringIO except ImportError: from StringIO import StringIO
查看全部 -
导入模块
import math→可访问math模块中定义的函数、变量、类
导入os.path模块的方式
import os
import os.math
from os import math
from os.path import isdir,isfile(引用path模块的isdir,isfile这2个函数)
名字冲突可给函数起别名:
from logging import log as logger
查看全部 -
print map(format_string, ['adam', 'LISA', 'barT'])查看全部
举报