python面向对象学习心得

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

python基础->ut.py->RobotFramework->RFWeb->RFAppium->RF与ATOP融合

一:notepat++运行
1.运行Notepad++,选择”运行“;
2.在弹出的窗口里填入:
cmd /k cd "$(CURRENT_DIRECTORY)" & python "$(FULL_CURRENT_PATH)" & ECHO. & PAUSE & EXIT
3.点击保存,填入这个命令的名称(随意取):Run Python;
4.定义这个命令的快捷键(注意不要和已有的快捷键冲突),保存即可。然后再选择”运行“,发现多出了”Run Python“这一项。
5.需设置好环境变量%PATH_python%,使在cmd模式下python命令有效

命令行运行(一般是IDLE)
import sys
print sys.path
#将要加载的库文件放在sys.path任意库目录下,即可用相对路径方式import库文件
os.getenv('PYTHONPATH')
查看模块所在路径: sys.modules['模块名']

二:语法笔记
1) 列表字典相关
list_ = ['0',1,2,['a','b','c']] ;# list_[0] list_[-1][1]
tuple_ = ('0',1,2,['a','b','c']) ;# tuple_[-1][1] # tuple_1=(1,)
dict = {0:0,'1':1} ;# dict[0] dict['1'] #hash表
set_ = set([1,2,2,3]) ;# set([1,2,3])
s_ = set('hello') ;# set(['h','e','l','o'])
l_ = [i for i in s_] ;# [1, 2, 3] #去除list中的重复元素
2) 函数相关
def f(a=1,b=2,c=3):
print a,b,c #默认参不能为可变对象
f(); f(0); f(11,c=13)
def x(*args):
pass ;# 空语句pass 可变参*args
x(*list_); x(*tuple_); x(1,2)
#关键字参数,与可变参类似,只是将*list_/*tuple变为**dict,传值时使用key='val'
#参数组合顺序,须为"必须参、默认参、可变参、关键字参" f(*args,**kw)
3) 高级特性
1> 切片: 对list/tuple/str 进行var[_start=0:_end=len(var):_step=1],end是开区间
2> 列表生成式: [x*x for x in iter if x%2==0] [m+n for m in 'ABC' for n in 'XYZ']
l=[s.lower() if isinstance(s,str) else s for s in list_]
3> 生成器Generator: 不创建完整的list、边循环变计算、节省内存
.next() 或 for迭代来操作Generator
方式1: 列表生成式的[]改为()
方式2: 函数中有yeild语句为临时中断点 #遇到return或最后1行语句时函数才返回
4) OOP
1> 两个下划线__*为私有,__*__为特殊(可访问)
2> __slots__ 限定动态扩展 __len__() 被.len()
__str__() 打印时显示 __repr__() 调试时显示
__iter__()与next()配合:用于迭代 __getitem__(): 取list下标
__getattr__() 属性时触发 __call__() 被调用时<用callable(obj)判定是否可被调>


三:常用调试命令
dir(varName) ;# 查看对象的属性&方法
type(varName) ;# 判断变量的数据类型
import types; type(varName)==types.ListType ;# 判定变量的类型
#调用tcl
from Tkinter import Tcl; tcl = Tcl(); tcl.eval('')

四:易犯

错点
1) 可变数据类型:
①命名List(Ls结尾)、Dict(中间带2或Dc结尾)
②区分"传引用:赋值操作符/return语句"、"传值:deepcopy()"
2) 全局变量:
不建议直接使用,推荐放在独立模块下、或类变量。
一定要用时,记得global声明,否则会当作局部变量处理。
3) 与包/模块名称冲突:
自己便携的脚本名、文件夹名,不要与"包/模块名"一致,否则会出现莫名奇妙的错误







相关文档
最新文档