-
filter() 参数:函数f, list。 对每个元素进行判断,返回符合条件的元素生成的list
查看全部 -
map():它接收一个函数 f 和一个 list,并通过把函数 依次作用在 list 的每个元素上.。
所以在函数内部,不需要进行for循环
查看全部 -
reduce()函数还可以接受第三个初始值
查看全部 -
sorted()函数:接收一个比较函数对List进行排序。默认为从小到大排序
查看全部 -
filter()函数:过滤掉不符合函数的list元素,返回新的list
查看全部 -
reduce()函数:对list依次调用函数,可以接收第三个初始值作为计算的初始值
查看全部 -
map()函数接收两个参数:一个函数和一个list。
在2中,接收一个list返回一个list
在3中,接收一个List返回一个iterators,需要用list()转换成list
查看全部 -
type():获取变量类型并返回Type对象。
>>> type(123) <type 'int'> >>> s = Student('Bob', 'Male', 88) >>> type(s) <class '__main__.Student'>
dir():获取变量的所有属性。
>>> dir(123) ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] >>> dir(s) # 对于实例变量,dir()返回所有实例属性 ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'gender', 'name', 'score', 'whoAmI']
getattr():根据属性名获取属性值。
setattr():根据属性名设置属性值。
>>> getattr(s, 'name') # 获取name属性 'Bob' >>> getattr(s, 'age') # 获取age属性,但是属性不存在,报错: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'age' >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20 >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam'
查看全部 -
多重继承:从多个父类继承。
class A(object): pass class B(A): pass class C(A): pass class D(B, C): pass
D同时继承自B和C,拥有A、B、C的全部功能。
多重继承通过 super() 调用 __init__() 方法时,__init__() 只调用一次。
多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。
查看全部 -
多态:在一个函数中,无论接收的参数是什么类型,只要该参数含有相应的方法,都可以正确调用该参数的方法。
def who_am_i(x): print x.whoAmI() p = Person('p') s = Student('s') t = Teacher('t') # 设Person、Student、Teacher类各自含有一个 whoAmI() 方法 # 则以下函数可以正确调用 who_am_i(p) who_am_i(s) who_am_i(t)
查看全部 -
class Student(object):
def __init__(self, name, score):
self.name = name
self.__score = score
@property
def score(self):
return self.__score
@score.setter
def score(self, score):
if score < 0 or score > 100:
raise ValueError('invalid score')
self.__score = score
def get_grade(self):
if self.__score >= 80:
return 'A'
if self.__score >=60:
return 'B'
return 'C'
s = Student('Bob', 59)
print s.get_grade
查看全部 -
isinstance():判断一个变量的类型是否为指定的类型。
class Person(object): pass class Student(Person): pass class Teacher(Person): pass p = Person() s = Student() t = Teacher() print isinstance(t, object) # True print isinstance(t, Person) # True print isinstance(t, Student) # False print isinstance(t, Teacher) # True
子类拥有父类以及自身的属性,因此一个父类实例不属于某个子类类型,而一个子类实例可以是其父类类型。
查看全部 -
好课查看全部
-
继承:
子类继承父类需要在 __init__() 方法中调用 super(SubClass, self).__init__(args) ,否则子类将不获得父类的属性。
函数 super(SubClass, self) 返回当前类继承的父类,接着调用 __init__() 方法并填入父类的属性即可初始化子类从父类继承而来的属性。self参数由于已在 super() 中传入,在 __init__() 中将隐式传递,不需要写出,也不能写出。
查看全部 -
继承:
1、新类从现有的类继承后自动拥有其父类的所有功能。
2、子类和父类是is关系。
class Person(object): pass class Student(Person): pass p = Person() # p是一个Person,不是一个Student s = Student() # s是一个Student,也是一个Person
3、Python的继承总是从某个类继承。
父类/基类/超类
子类/派生类/继承类
子类需要在 __init__() 方法中调用 super(SubClass, self).__init__(args) 来初始化从父类继承的属性,其中args是父类 __init__() 方法中的参数(不包括“self”):
class Person(object): def __init__(self, name): self.name = name class Student(Person): def __init__(self, name, school): super(Student, self).__init__(name) # 或:Person.__init__(self, name) self.school = school
查看全部
举报