Python初识2
27、Python中没有{}括起来的代码块,使用pass来代替c语言中的{(无内容)};
28、使用__name__来指示模块是如何加载的,如果是被导入的,那么__name__就是该模块的名字,如果是直接执行的,那么__name__就是’__main__’;
29、异常捕获:使用try...excepti...except...或者try...finally...,抛出异常使用raise,不像java和c++一样可以讲try..catch...finally一起使用;
30、Python中函数的参数列表中的参数有5种:位置参数、缺省参数、可变长参数和关键字可变长参数。位置参数就是一般的参数,必须传值给他;缺省参数就是c++中的带有默认值的参数,可变长参数就是c#中的那个params,可以传递不确定个数的参数,关键字可变长参数可以看做是可变长参数的一种,只是他是用来传递键值对(字典)的;这四种参数的先后顺序为:位置参数,缺省参数,可变长参数,关键字可变长参数;例子:
def fun(a,b=1,*c,**d):
print(a);print(b);
for ele in c:
print(ele)
for ele in d.keys():
print(ele,'=',d[ele])
31、Python中有global关键字,用来声明即将使用的变量是一个全局变量,因为有时候局部变量和全局变量重名的时候,局部变量会覆盖全局变量,为了使用全局变量,我们需要使用global在函数中声明;
32、Python允许函数的嵌套定义,但是不管怎样定义,函数所能使用的变量最多只有两种:自己定义的局部变量和全局变量。比如下面的访问的:
def fun1():
a=1;
def fun2():
a=10
b=a+1
print(a,b)
fun2()
print('a=',a)
fun1()
结果输出为:
10 11
a= 1
其实在这里如果没有a=10这句代码的话那么b的值就是2;
33、global()和locals()分别以字典的形式返回当前作用域下的全局变量和局部变量:
def fun():
print('in foo')
aString='bar'
aInt=1
print(globals())
print(locals())
print('main globals ',globals())
print('main locals()',locals())
fun()
程序输出为:
main globals {'__name__': '__main__', '__spec__': None, '__package__': None, '__loader__': <_frozen_importlib.SourceFileLoader object at 0x0000000002181710>, '__cached__': None, '__file__': 'F:\\CreationExercises\\pythonWorkspace\\HelloWorld\\first\\HelloWorld.py', '__doc__': None, 'fun': <function fun at 0x00000000021DDE18>, '__builtins__': <module 'builtins' (built-in)>}
main locals() {'__name__': '__main__', '__spec__': None, '__package__': None, '__loader__': <_frozen_importlib.SourceFileLoader object at 0x0000000002181710>, '__cached__': None, '__file__': 'F:\\CreationExercises\\pythonWorkspace\\HelloWorld\\first\\HelloWorld.py', '__doc__': None, 'fun': <function fun at 0x00000000021DDE18>, '__builtins__': <module 'builtins' (built-in)>}
in foo
{'__name__': '__main__', '__spec__': None, '__package__': None, '__loader__': <_frozen_importlib.SourceFileLoader object at 0x0000000002181710>, '__cached__': None, '__file__': 'F:\\CreationExercises\\pythonWorkspace\\HelloWorld\\first\\HelloWorld.py', '__doc__': None, 'fun': <function fun at 0x00000000021DDE18>, '__builtins__': <module 'builtins' (built-in)>}
{'aString': 'bar', 'aInt': 1}
34、reload()函数使用前提:模块之前被导入过,而且不是用from import导入的;参数必须是模块本身;reload()的意义:模块中的代码只会执行一次,reload之后同样也不会执行第二次,其作用在于绑定模块名字;
35、阻止某个属性被绑定:当使用import from 导入模块属性的时候,只要将不需要的属性前面加一个下划线就好了,另外那些带有下划线的属性本身就不会被导入;
36、类:Python中的类没有静态方法,这也就意味着所有的函数都应该通过实例进行访问,其次在类中定义的属性,都是静态属性,想要定义实例属性一般有两种方式,一个是通过构造函数(__init__),另外就是当使用构造函数生成对象之后再添加实例属性,道理上来说静态属性应该通过类名进行访问,但是通过实例也可以访问到,当定的实例变量和静态变量重名的时候使用实例访问到的是实例属性,所以对于静态变量,使用类名进行访问才是正确的姿势。除此之外,Python中也有类似c++中的析构函数,为__del__。其次,建议为每一个类都定义__inti__函数,和java与c++不一样的是如果本类没有定义自己的init方法,他就会去调用父类的,如果定义了自己的,那么父类的就不会被调用,如果想要调用父类的构造方法可以通过父类的类名调用。附一段代码:
class B:
count=0;
def __init__(self):
self.count=self.count+1;
B.count=B.count+1
def __del__(self):
self.count=self.count-1;
B.count=B.count-1
a=B();
a.name='cao'
a.count=10
c=B();
c.name='guanjie'
c.count=30
print(a.name,c.count,B.count)
程序的输出为:
cao 30 2
37、实例有两个重要的属性__class__和__dict__,通过实例进行访问,返回类type和以字典为形式的属性,另外可以通过dir来得到某个实例的所有实例属性
Python初识2的更多相关文章
- python初识(二)
目录: 进制 基本数据类型 整形 布尔值 字符串 列表 元祖 字典 集合 range & enumerate 一.进制 二进制转换十进制计算: 十进制:==47 一个字节公式:==128 64 ...
- 小学生绞尽脑汁也学不会的python(初识面对对象)
小学生绞尽脑汁也学不会的python(初识面对对象) 一. 面向对象思想 1. 面向过程. 重点在"过程". 按照实物的发展流程. 先干嘛,后干嘛, 最后干嘛.... 优点: 简单 ...
- Python 入门【一】Python 初识及学习资料
Python 初识及学习路线: CodeCademy Python 在线教学: 廖雪峰 Python 2.7 教程: 廖雪峰 Python 3.0 教程: Python 官方文档(2.7~3.7:英文 ...
- Python初识类与对象
Python初识类与对象 类与对象 世界观角度分析类与对象 类是一个抽象的概念,而对象是一个实体的存在,对象由类创造而出,每个对象之间互相独立互不影响,一个对象可以同时拥有多个类的方法,实例化就是通过 ...
- Python初识函数
Python初识函数 函数理论篇 什么是函数 在编程语言中的函数不同于数学中的函数.不管是数学上的函数还是编程语言中的函数都是为了完成特定的某一功能而诞生的,他们的区别在于: 1.数学中的函数当输入的 ...
- Python初识与简介【开篇】
目录 1.扯淡 2.Python历史 3.Python简介 4.Python应用 5.为什么是python而不是其他语言? 6.Python的种类 7.Python的特点 8.Python设计哲学 9 ...
- Python初识文本基本操作
初识文本的基本操作 怎么在文件里面写内容和都内容 文件操作过程 1,找到文件 文件路径 2,打开文件 file_obj=file(文件路径,模式) 3,文件操作,读写文件 file_obj.read( ...
- python初识-day2
1.模块初识 python中的库包括标准库和第三方库,需要使用时可直接导入,导入格式为"import 库模块",例如: import sys #sys为python的标准库 pr ...
- python - 初识面向对象
1.初识面向对象 面向过程:一切以事务的发展流程为中心 优点:负责的问题流程化,编写相对简单 缺点:可扩展性差,只能解决一个问题,改造也会很困难,牵一发 ...
- 第一篇、Python初识
1.Python文件后缀是否可以任意? 单独执行的时候没关系,但当文件需要导入(即导入模块)的时候,如果不是py后缀的,会出错. 2.执行方法 1) python +文件路径 python + fil ...
随机推荐
- django开发总结
首先我用的是虚拟机,python3.6+django1.11.0: 为了版本的一致,以及在环境种更好的体验,我们需要的是先用虚拟环境virtualenv其命令有: 1.创建环境(name是虚拟环境名字 ...
- 【渗透课程】第二篇上-http请求协议的简单描述
HTTP协议剖析 什么是HTTP协议?如何发起请求?我认为这样讲大家能够理解: 浏览器访问网站也是http请求的一个过程.当你打开浏览器,访问一个URL (协议://服务器IP:端口/路径/文件)的时 ...
- JSP慕课网之application、page、pageContext、config、exception
接下来使用getSession().forward().include()方法. 跳转的include.jsp页面:
- Ext.grid.EditorGridPanel分页和查看全部
在gridPanel添加查看全部数据按钮,必须使得每页显示的数量pageSize为总条数,那么总页数就只会有一页. 1.获取store数据的总条数 var totalCount = grid.getS ...
- python爬虫之一---------豆瓣妹子图
#-*- coding:utf-8 -*- __author__ = "carry" import urllib import urllib2 from bs4 import Be ...
- JAVA HashMap的实现原理
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt359 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存 ...
- Docker - Failed to connect to localhost port 4000: Connection refused
转载.翻译自 https://stackoverflow.com/questions/44014698/docker-failed-to-connect-to-localhost-port-4000- ...
- Httpservlet 获取json对象字符窜
使用的是google 的json转换jar import com.google.gson.JsonObject;import com.google.gson.JsonParser; import or ...
- JS内置对象-自定义对象
1.基本概念: ①对象:对象是拥有一系列无序属性和方法的集合. ②键值对:对象中的数据是以键值对的形式存在,对象的每个属性和方法,都对应值一个键名,以键取值. ③属性:描述对象特征的一系列变量称为属性 ...
- 个人作业2——英语学习APP案例分析(必应词典的使用)
第一部分 调研, 评测 1.使用环境:window 10 词典版本: 2.使用体验: 打开词典出现下面这一界面: 词典模块:出现了每日一词,每日一句,每日阅读板块,还提供了生词本,个人觉得最喜欢的是这 ...