APP下载
报价宝  ›  科技  › 

Python 读书笔记(容易误解的知识点)-Part 1

报价宝 来源:baojiabao.com 发布时间:2019-10-26 08:56:00 09月21日更新
报价宝综合消息Python 读书笔记(容易误解的知识点)-Part 1

if __name__ == '__main__'是啥意思?

Python 属于指令码语言,不像编译型语言那样先将程式编译成二进位制再执行,而是动态的逐行解释执行。也就是从指令码第一行开始执行,没有统一的入口。Java 和 C# 必须要有一个包含 Main 方法的主类来作为程式入口。

if __name__ == '__main__' 就相当于是 Python 模拟的程式入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模组之间相互引用,不同模组可能都有这样的定义,而入口程式只能有一个。到底哪个入口程式被选中,这取决于 __name__ 的值。

__name__ 是内建变数,用于表示当前模组的名字,同时还能反映一个包的结构。

如果一个.py档案(模组)被直接执行时,则其没有包结构,其__name__值为__main__,即模组名为__main__。

可以简单测试一下其输出:

print(__name__)

直接执行,输出结果为:__main__

if __name__ == '__main__'表示啥意思呢?如果模组是被直接执行的,则该程式码块被执行,如果模组是被汇入的,则程式码块不被执行。

Python中传引数args=(i,) 为什么要加上逗号?

Python中传引数的是时候如果直接传args = (i),那么直译器会觉得你是传了一个数字而不是元组。只有args = (i,)这样传才会预设为传进一个元组。这是格式要求。

看下面这段操作演示,只有当b元组中只有一个元素的时候,需要逗号来转换为元组型别。

如下是一段演示程式码:

Python的from import和import的区别?

import Module # 引入模组

from Module import Class # 引入模组中的类、函式或者变数

from Module import * # 引入模组中的所有公开成员

再进一步解释一下:

第一个:引入的模组会自动生成一个物件(以模组命名,或者通过as 更改别名),然后就可以通过这个物件获取该模组里面的类、函式或者变数等等。

第二个:引入模组中的Class成员,呼叫时就可以省略模组名。

第三个:就是引入模组中所有公开的成员。

如下面的例项程式码:

from datetime import datetime

print(datetime.now())

import datetime as dt

print(dt.datetime.now())

第一部分是:引入datetime 模组中的datetime类,然后就可以直接通过 datetime 类呼叫 now() 方法了。

第二部分是:引入 datetime模组,并命名为dt,这个模组中有一个类datetime,在这个类中有一个方法now()。

可以进一步检视源代码。在datetime.py 档案中,找到了 datetime 这个类,同时在这个类中找到了 now() 方法。

呼叫过程是:模组datetime -> 类datetime -> 方法now()

now() 方法:

最后补充一点:

import xx.xx.xx,最后的一个xx可以是package或者module,但绝对不能是函式或者类的名字。

比如,import datetime.datetime就是不对的。

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 报价宝 汽车价格 笔记本电脑价格 小米手机价格 降噪耳机价格