-
ython对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),
查看全部 -
reduce()函数也有两个参数,一个是函数f,一个是list(与map函数类似) 区别有两点:第一 函数f接收的必须是两个参数 第二 对list的每个元素都反复调用函数f
EX:
def add(x,y):
return x+y
L=[1,3,5,7,9]
print reduce (add,L) //最终结果为25
reduce()函数还可以接收第3个可选参数,作为计算的初始值
Ex:
reduce(add,L,100) //计算初始值和第一个元素:add(100,1) 结果为101
查看全部 -
map()函数有两个参数,接受一个函数f和一个list,并通过函数f依次作用在list的每个元素上。
EX:
def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
.upper函数是把所有字母变成大写
.lower函数是把所有字母变成小写
查看全部 -
math.sqrt是可以用来计算平方根的函数!!
其返回值是浮点数 如果题目要求是整数 必须前面加int
查看全部 -
a, b = b, a + b
注意与a = b,b = a+b的区别
查看全部 -
定义实例--私有属性
私有属性无法从外部访问,但是可以在类的内部访问
实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的:
class Person(object): def __init__(self, name): self.__name = name def get_name(self): return self.__name p1 = Person('Bob') print p1.get_name() # self不需要显式传入 # => Bob
在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。
输出中文记得文件头部添加编码- #-*- coding:UTF-8 -*-
查看全部 -
实例属性每个实例各自拥有,互相独立,而类属性有且只有一份(类属性直接绑定在类上面,因此不需要创建实例即可访问)
python 是动态语言,因此类属性可动态修改和修改, 类内部调用类属性(Person.attr)
类属性与实例属性名字冲突:实例属性优先级高,将屏蔽对类属性的访问
查看全部 -
filter运行出现 <filter object at 0x000001B68F052828> 判断素数
刚接触filter时 运行总是出现<filter object at 0x000001B68F052828> 得不到想要的数据
后来发现是因为filter的结果是一个数组 需要 list 帮助
后来将print(f) 改为 print(list(f)) 成功~
代码:def fil(n):
return n%2==1
f=filter(fil,range(100))
print(list(f))
结果:
将100以内的奇数算出来了
查看全部 -
s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。
当rm为空时,默认删除空白符(包括'\n', '\r', '\t', ' '),如下:
a = ' 123' a.strip()
结果: '123'
这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:
def is_odd(x): return x % 2 == 1
然后,利用filter()过滤掉偶数:
filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
查看全部 -
正确实现特殊方法
查看全部 -
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
for k , v in kw.items(): 传入**kw 即可传入任意数量的参数,并通过 setattr() 绑定属性。
setattr(self , k ,v)
获取object对象的属性的值,如果存在则返回属性值,如果不存在分为两种情况,一种是没有default参数时,会直接报错;给定了default参数,若对象本身没有name属性
查看全部 -
调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。
查看全部 -
继承中用super初始化父类
查看全部 -
继承的特点
查看全部 -
如果要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现。
查看全部
举报