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 ...
随机推荐
- CSS:a:link;visited;hover;active解释及正确顺序
a:link 选择器设置指向普通的.未被访问页面的链接的样式, a:visited 选择器用于设置指向已被访问的页面的链接, a:active 选择器用于活动链接, a:hover 选择器用于选择鼠标 ...
- 为table元素添加操作日志
1.为所有的元素添加函数onchange() <input id="status" value="${status}" onchange="ch ...
- adb 安装apk 报错:Failure [INSTALL_FAILED_INVALID_URI]
今天在安装某apk的时候,发现报错 报错信息:Failure [INSTALL_FAILED_INVALID_URI] 于是找到了一个解决方式: cmd命令行下执行以下命令: 第一步.adb remo ...
- HDMI转EDP芯片NCS8803简介
NCS8803 HDMI-to-eDP w/ Scaler Features --Embedded-DisplayPort (eDP) Output 1/2/4-lane eDP @ 1.62/2.7 ...
- mysql中group by 的用法解析
1. group by的常规用法 group by的常规用法是配合聚合函数,利用分组信息进行统计,常见的是配合max等聚合函数筛选数据后分析,以及配合having进行筛选后过滤. 假设现有数据库表如下 ...
- Mysql分页处理(PageHelper)
第一次做分页处理(完全不知道分页处理到底要做成什么样?) 理解:其实就是前台页面通过传递不同的参数{1.查询的条件.2.查询页数(pageNum),3每页展现的条数(pageSize)},之后我们(只 ...
- MySQL的JOIN(三):JOIN优化实践之内循环的次数
这篇博文讲述如何优化内循环的次数.内循环的次数受驱动表的记录数所影响,驱动表记录数越多,内循环就越多,连接效率就越低下,所以尽量用小表驱动大表.先插入测试数据. CREATE TABLE t1 ( i ...
- hdu2546 01背包 重学背包
题意:给出菜的价钱和自己的余额.使自己余额最少,注意余额大于5的情况可以买任意的菜. 思路:小于5的余额不能买菜,直接输出,大于五的余额,留下5元买最贵的菜,剩下的余额进行01背包,将剩下的余额减去0 ...
- 小程序脚本语言WXS,你想要的都在这里了
WXS脚本语言是 Weixin Script脚本的简称,是JS.JSON.WXML.WXSS之后又一大小程序内部文件类型.截至到目前小程序已经提供了5种文件类型. 解构小程序的几种方式,其中一种方式就 ...
- 关于selenium IDE找不到元素
selenium IDE ,明明存在元素,却找不到元素 ,报错Element not found 标签: seleniumselenium IDE自动化测试ide 2016-10-31 13:25 1 ...