码迷,mamicode.com
首页 > 编程语言 > 详细

python小记

时间:2018-03-12 22:54:43      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:对象   方法   代码   不能   body   __name__   style   意思   div   

一、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
例,

1 lst = ["a", "b", "c"]
2 for i, element in enumerate(lst):
3         print(i, lst[i])
4 输出:
5 0 a
6 1 b
7 2 c



二、python字典取值:字典中取值大家很容易想到用dict[key],这个有什么难的,确实一般取值是这样的,但是你有没有想过若你取的值不存在,就会发生异常,风险很大.(良好的代码,一定是要考虑健壮性,切记)。因为试图通过索引的方式去取值,比如dict[key],当key不是字典dict的键,会引起异常,有没有什么两全的办法有值的时候取值,没有值的时候即使我取不到也不会发生异常。
答案是有的,python早就给你准备好了.我们用dict.get()

建议:尽量用dict.get()来代替dict[key]

 


三、如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个生成器函数,打印看一下.
例,

1 def fac2(n):
2     a, b=1, 1
3     while a<n:
4         yield a
5         a, b=b, a+b
6 
7 for i, f in enumerate(fac2(10)):
8     print(f)




四、访问限制:如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问。

 

 1 class Person(object):
 2     def __init__(self, name):
 3         self.name = name
 4         self._title = "Mr"
 5         self.__job = "Student"#这里就变成了隐藏属性
 6     
 7     def get_job(self):
 8         return self.__job
 9 
10 p = Person("yxy")
11 p.name="adai"
12 print(p.name)
13 print(p._title)
14 print(p.__job)#这里报错
15 print(p.get_job())#这里通过get_job()方法来获取隐藏属性__job


注意:
①需要注意的是,在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,不是private变量,所以,不能用__name__、__score__这样的变量名。

②有些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。如果外部代码想要获取"__job"属性时,可以添加方法,用方法来获取所需的隐藏属性!

③p.__job="teacher",向这种更需要注意,虽然表面上看着可以成功执行(可以成功修改__job),但这里修改的__job并不是隐藏的属性__job!


python小记

标签:对象   方法   代码   不能   body   __name__   style   意思   div   

原文地址:https://www.cnblogs.com/Downtime/p/8552241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!