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 ...
随机推荐
- SQL注入-攻入Apple ID钓鱼网站实录
之前写的一篇利用SQL注入方式攻击钓鱼网站的文章,现在在博客园再分享一下. 下午,朋友发了一条朋友圈,内容大概这样: 大体就是她的iPhone丢了,收到了钓鱼短信,多么熟悉的套路,如下: 还好她比较机 ...
- 优秀的PE工具收藏
优秀的PE工具收藏... ----------------------- ------------------------------------------<排名不分先后..自己喜欢的就是最好 ...
- 8.23.3 IO-转换流的作用
Reader和Writer最重要的子类是InputStreamReader和OutputStreamWriter类. InputStreamReader类包含了一个底层输入流,可以从中读取原始字节.它 ...
- 【渗透课程】第四篇-Web安全之信息探测
Web之信息探测,从这篇开始就正式进入了Web渗透实战过程了,嗯,前面都是讲基础,下面我们来讲Web中的信息探测. 信息探测,主要的目的 收集目标服务器系统信息(IP,服务器所用系统等) 收集目标网站 ...
- Python学习日志_2017/09/08
今天早晨学习了<Head First :HTML and CSS>:学习了两个章节,感觉从基础学习特别的踏实,能看懂的同时踏踏实实的锻炼了基础的能力.我个人认为无论哪个行业,最重要的永远是 ...
- Java企业微信开发_09_素材管理之下载微信临时素材到本地服务器
一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=AC ...
- svn status详解
svn 是在提交前查看本地文本和版本库里面的文件的区别.返回值有许多种具体含义如下: [url=] L abc.c # svn已经在.svn目录锁定了abc.c M ...
- spring事务详解
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt122 Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式 ...
- 【转】Spring AOP 实现之CGLIB
详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp91 cglib(Code Generation Library)是 ...
- [UWP]理解及扩展Expander
##1. 前言 最近在自定义Expander的样式,顺便看了看它的源码. Expander控件是一个ContentControl,它通过IsExpanded属性或者通过点击Header中的Toggle ...