-
map(f, list):将函数f依次作用在list的每个元素上,生成一个新的list并返回。
查看全部 -
class Person(object):
__count = 0
def __init__(self,name):
Person.__count += 1
self.name = name
@classmethod
def how_many(cls):
return cls.__count
print Person.how_many()
p1 = Person('Bob')
print Person.how_many()
查看全部 -
class Person(object): def __init__(self, name, score): self.name = name self.score = score self.get_grade = lambda x,y : x*y p1 = Person('Bob', 90) funname = p1.get_grade print funname(2,8) print p1.get_grade print p1.get_grade(3,5)
16<function <lambda> at 0x00000000026A54A8>15
查看全部 -
这一节没有太明白实际作用是什么?为什么要在函数中返回函数呢?
查看全部 -
方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法:
import types def fn_get_grade(item): if item.score >= 80: return 'A' if item.score >= 60: return 'B' return 'C' class Person(object): def __init__(self, name, score): self.name = name self.score = score def get_score(self): return self.score p1 = Person('Bob', 90) p1.get_grade = types.MethodType(fn_get_grade, p1, Person) print p1.get_grade() print p1.get_score()
查看全部 -
class Person(object): address = 'Earth' def __init__(self, name): self.name = name p1 = Person('Bob') p2 = Person('Alice') print 'Person.address = ' + Person.address p1.address = 'China' print 'p1.address = ' + p1.address print 'Person.address = ' + Person.address print 'p2.address = ' + p2.address
Person.address = Earth
p1.address = China
Person.address = Earth
p2.address = Earth
查看全部 -
特殊方法
定义在class中
不需要直接调用
python的某些函数活操作符会调用对应的特殊方法
任何数据类型的实例都有一个特殊方法
把任意变量变成str → __str__()
用于print的__str__
用于len的__len__
用于cmp的__cmp__
查看全部 -
class Person(object):
__count = 0
def __init__(self, name):
self.name = name
Person.__count += 1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except AttributeError:
print 'attributeerror'
# print p1.__count
查看全部 -
class Person(object): count = 0 def __init__(self,name,**kw): self.name = name for key,value in kw.items(): setattr(self,key,value) # Person.count = Person.count + 1 def __new__(cls,*args,**kwargs): Person.count +=1 return object.__new__(cls,*args,**kwargs) p1 = Person('Bob') print Person.count p2 = Person('Alice') print Person.count p3 = Person('Tim') print Person.count p4 = Person('Xiaoxiao',age=11) print Person.count
查看全部 -
获取对象信息
type()函数 → 获取变量的类型,返回一个type对象
dir()函数 → 获取变量的所有属性(包括特殊属性__class__、whoAmI),返回一个字符串列表
getattr()函数、setattr()函数 → 已知属性,获取、设置对象的属性
>>> getattr(s, 'name') # 获取name属性'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam'
查看全部 -
class Person(object):
def __init__(self, name, score):
self.name = name
self.__score = score
p = Person('Bob', 59)
print p.name
try :
print p.__score
except AttributeError:
print 'attributeerror'
查看全部 -
class Person(object):
def __init__(self,name,gender,birth,**kw):
self.name = name
self.gender = gender
self.birth = birth
for k,v in kw.items():
self.__dict__[k] = v
xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')
print xiaoming.name
print xiaoming.job
查看全部 -
多重继承
多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。
查看全部 -
Python提供了open()函数来打开一个磁盘文件,并返回 File 对象。File对象有一个read()方法可以读取文件内容:
例如,从文件读取内容并解析为JSON结果:
import json f = open('/path/to/file.json', 'r') print json.load(f)
查看全部 -
多态
def who_am_i(x): print x.whoAmI()
方法调用将作用在 x 的实际类型上
传递给函数 who_am_i(x)的参数 x 可以是任何数据类型的实例,只要有whoAmi()方法
动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。
查看全部
举报