python_2_小记

python

随堂小记

1_ 私有属性的使用:
属性名前加双下划线(例: __m )

>>> class A:
	__m=10

	
>>> a=A()
>>> a.m
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    a.m
AttributeError: 'A' object has no attribute 'm'

2_ pass 在类中的作用:空类时使用

>>> class B:
	pass

>>> 

3_ property(getX , setX , delX )函数的作用:
整合 getX(),setX(),delX()于一体

>>> class A:
	def __init__(self,x):
		self.__x=x
	def setX(self,y):
		self.__x=y
	def getX(self):
		return self.__x
	def delX(self):
		del self.__x
	m=property(getX,setX,delX)

	
>>> a=A(5)
>>> a.getX()
5
>>> a.m
5
>>> a.m=10
>>> a.getX()
10
>>> 

4_ 列表推导式:

>>> list1=[i for i in range(10) if i % 2 ==0]
>>> list1
[0, 2, 4, 6, 8]

等价于:

>>> list1=[]
>>> for i in range(10):
	if i % 2 ==0:
		list1.append(i)

		
>>> list1
[0, 2, 4, 6, 8]
>>> list1=[[1,2,3],[4,5,6],[7,8,9]]
>>> list2=[i for row in list1 for i in row]
>>> list2
[1, 2, 3, 4, 5, 6, 7, 8, 9]

等价于:

>>> list2=[]
>>> for row in list1:
	for i in row:
		list2.append(i)

		
>>> list2
[1, 2, 3, 4, 5, 6, 7, 8, 9]

5_ 迭代器
两个BIF:
iter() :将之转换为迭代器,对应魔法方法__iter__(self)
next(): 迭代返回啥 ,对应的魔法方法 _next_()

for循环迭代器的实现原理

>>> string='jcy'
>>> for each in string:
	print(each)

	
j
c
y
>>> it=iter(string)
>>> while True:
	try:
		print(next(it))
	except StopIteration:
		break

	
j
c
y
>>> 

迭代器的实现(魔法方法)

>>> class fibas:
	def __init__(self,n=20):
		self.n=n
		self.a=0
		self.b=1
	def __iter__(self):
		return self
	def __next__(self):
		self.a,self.b = self.b,self.a+self.b
		if self.a > self.n:
			raise StopIteration
		return self.a

	
>>> fib=fibas()
>>> for each in fib:
	print(each)

	
1
1
2
3
5
8
13

6、python编码问题

A编码 -----> decode(‘A编码’) -----> unicode 编码 ------> encode(‘B编码’) -------> B编码

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值