python必须了解的一些知识
python工程组织结构包括(包>模块>类>方法>变量),方法和变量好理解,那么我们就弄清楚包、模块、类的含义
包、模块、类的概念
-
包(Package)
包:在Pycharm中的表现形式就是左侧文件列表中的一个目录,通常存放多个关系密切的模块,唯一需要注意的就是,只有包含_ init _.py文件的目录才叫做’包’.
右键New→Python Package就是创建’包’的过程
-
模块(module)
模块:是一个文件,可以直接使用import导入,可作为模块的文件类型有’.py’,’.pyo’,’.pyc’,’.pyd’,’.so’,’.dll’
-
类
类:用来描述具有共同特征的一类事物,就像我们通俗理解的’人类’可被看作一个类,然后用这个类定义出每个具体的人–你,我,他等作为其对象;类还有属性和功能,属性就是这类事物的特征,功能就是能做什么,也就是方法或函数,举例说明class Person(): #定义类,起名为Person n = 100 #类属性,类内的变量 def __init__(self,name,age,phone): #构造函数,类接收外部传入参数全靠构造函数 self.name = name self.age = age self.phone = phone def printing_name(self): #类的方法 print('我的名字是:%s'%self.name) def printing_age(self): print("我的年龄:%s"%self.age) def printing_phone(self): print("我的号码:%s"%self.phone) test = Person('luke',21,'123456') #类的实例化,将参数传入类中,传入参 #数可以多但不可以少于类构造函数的参数(self参数 #除外,self是将实例化的变量名传入类) print("这是类实例化后的内存地址:%s"%test) test.printing_name() #调用实例化后类中的方法 test.name = 'moon' #可以修改构造函数中参数的值 test.printing_name() test.printing_phone() print(test.n) test.n = 200 #修改类属性,只针对test实例化生效 print(test.n,'\n====================') t2 = Person('jack',22,'112233') #实例化类对象,命名t2 print(t2.n) t2.printing_age()
编码规范
-
代码编排
缩进:4个空格的缩进(IDE可自动判断缩进),尽量不适用Tab,也不要Tab和空格混用
换行:使用反斜杠 ’ \ '换行
空行:类和top-level函数定义之间空两行;各方法定义之间空一行;函数内逻辑无关段落间空一行 -
空格的使用
右括号前不加空格
逗号,冒号,分号前不加空格
函数序列左括号前不加空格,func(),list()
多语句不写在同一行,使用’ ; ’
if/for/while语句中,必须另起一行写执行语句
不使用tab键,尽量都是用空格 -
命名规范
包:小写字母命名,可使用下划线,lower_with_under
类:驼峰法命名,首字母大写,私有类下划线开头,HelloWorld
函数:小写字母命名,私有函数下划线开头,lower_with_under
变量:小写字母命名,私有变量下划线开头,lower_with_under
常量:全大写字母命名,私有常量下划线开头,CAPS_WITH_UNDER
总结
1 唯独类命名用驼峰法
2 常量字母都是大写
3 其他全是小写用下划线分隔
4 下划线开头的都是私有的
补充
-
特殊模块_ init _.py
_ init _.py模块,是在新建包时,自动创建的模块,也叫初始化模块;我们在导入该包时,默认会先运行该模块,我们验证一下:#在_ _init_ _.py模块中加入 print('开始导入包')
有_ init _.py模块的文件夹才叫做’包’,才可以被导入 -
_name _=’_main _'
经典解释 → '让你的脚本模块既可以导入其他模块使用,也可使该模块自己执行’#module.py def main(): print('我是被直接执行的') if __name__=='__main__': main() else: print('我被导入') --------------------------- #test.py import module print('导入完成')
我们在直接执行module.py文件时,会执行if判断中的内容,最终输出’我是被直接执行的’;
当我们执行test.py文件时,导入了module模块,最终输出’我被导入’ \n ‘导入完成’,没有执行if判断中的内容,为什么?
解释:
_name _ :前后加双下划线表明是系统定义的变量名,是用来标识模块名字的一个系统变量
如果模块是被导入的,_name _ 的值就是模块名字
如果模块是被直接执行的,_name _的值就是’_main _’
文件中有if _name _ == ‘_main _’,则表明该我文件是整个工程的入口文件 -
模块导入
#import语句 import module ## 导入module模块,python解释器通过sys.path的路径搜索该模块 module.name() ## 调用module中的函数 #更改调用名称 import module as md ## 导入module模块,并命名为md md.name() ## 调用module中的函数 #from...import...语句 from module import name ## 导入module模块中的name函数,不会导入整个模块
导入要求:要求被导入的模块与准备导入的模块文件是同级,若不在同级,则需要将模块的路径加入该文件的环境变量里
- Python学习第三章《字符串》(成为高手前必须知道的一些基础知识)
- 学习HTML必须了解的一些基础知识
- 黑马程序员 接口的一些必须了解的知识
- Python学习第三章《变量》(成为高手前必须知道的一些基础知识)
- 嵌入式必须了解的一些知识
- Python中关于字符串对象的一些基础知识
- PHP socket编程需要了解的一些基本知识
- Python一些知识
- 密码学需要了解的一些基础术语和基本知识
- Blog1@python关于基本知识了解
- 学Java前要了解的一些基础知识
- LFCS 之你必须了解的命令行知识
- 我了解的一些线阵相机知识
- 了解一些多线程相关的知识
- 关于WiFi必须了解的基础知识
- 网络爬虫及面试中必须掌握的python基础知识(一)
- 一些Python知识
- 使用ajax前必须了解的知识
- 网站优化必须了解的三个基础知识
- 一些策划需要了解的程序知识