python自动化--语言基础五面向对象、迭代器、range和切片的区分
面向对象
一、面向对象简单介绍:
class Test(): #类的定义
car = "buick" #类变量,定义在类里方法外,可被对象直接调用,具有全局效果
def __init__(self): #构造方法
self.name = #成员变量,可以在类的不同方法间调用,也可以由类创建的对象进行调用
print("name=",self.name) def say(self): #类方法必须包含参数self,且为第一个参数
address = "china" #方法中的局部变量
print("address=",address) self.address = address #局部变量可以在类方法间使用 def cry(self):
print(self.address) #打印上面局部变量 @staticmethod #静态方法可以被类名直接调用
def fun1():
print("我是静态方法") t = Test() #t为类创建的对象
# print(t.car) #打印类变量
t.say()
t.cry()
Test.fun1()
#方法(函数)、类变量、成员变量(init)、局部变量(def)
二、类的继承,子类可以使用父类的方法,父类不可以使用子类的方法
三、方法重写:调用最新的方法
class Parent():
def myMthod(self):
print("父类的方法") class Cjild(Parent):
def myMthod(self):
print("子类的方法") c = Cjild()
c.myMthod() #先调用自己的方法,也叫做方法重写
四、私有变量和方法
class Info():
def __init__(self):
self.__name = 'xiaohan' #私有变量(一般只能在类内部使用) def say(self):
print(self.__name) #类的内部调用 a = Info()
# print(a.__name) #类的外表调用报错,无法调用
print(a._Info__name) #注意:可以用a._Info__name这样的方式在类的外部调用,这就是python的灵活性
迭代器
#迭代器一次返回一个成员
list1 = [,,,]
it = iter(list1) #创建一个对象并赋值给it
print(next(it)) #
print(next(it)) #
print(next(it)) #
print(next(it)) #
range和切片的比较:
range:
range(strat,end,step)
range() range(,) range(,,)
range(-,)
range(,-,-) range(-,,-) #输出为空
range(,,-) #输出为空
range(,,) #输出为空
切片:
a[start,end,seq]
seq如果为正,从左往右走,如果start大于end显示为空
seq如果为负,从右往左走,如果start小于end显示为空
如果start为空,表示从头开始走
如果end为空,表示走到末尾
如果start和end都为空,取全部
如下 标记位:
# 0 1 2 3
# a b c d
# -4 -3 -2 -1
练习:
求圆的面积和周长
from math import pi
class Shape():
def getArea(self,r):
print("圆的面积是:%.2f"%(pi*(r**))) def getLong(self,r):
print("圆的周长是:%.2f"%(*pi*r)) y = Shape()
y.getArea()
y.getLong()
统计员工信息和工资
class Employee: count =
def __init__(self,name,salory):
self.name = name
self.salory = salory
Employee.count += def emp_info(self):
print("name=",self.name,"salory=",self.salory) def emp_count(self):
print("num=",self.count) u = Employee('han',)
u.emp_count()
u.emp_info()
u1 = Employee('xiaobei',2)
u1.emp_count()
u1.emp_info()
思考面向对象的执行顺序:
class Test():
s = "我是一个类变量,嘎嘎" def __init__(self):
print("构造方法就是初始化,来一下")
self.a = #可以由类创建的对象调用
self.b = def __del__(self):
print("析构方法就是后期收拾残局的,我来") def foo(self):
print("方法内的普通成员") @staticmethod
def baba():
print("类的静态方法,我可以被类名直接调用哦,来来") t = Test() #创建一个对象,对象啊对象
'''
思路:
init和del在类中仅且执行一次,init是初始化(先勤部队)del是收拾残局(后勤部队)
不管是几个方法的调用都会执行下init和del
'''
t.foo() #如果单独执行打印init和del,中间打印foo
Test.baba() #如果单独执行打印init和del,中间打印baba
print(Test.s) #如果单独执行打印init和del,中间打印s #如果一起执行打印的顺序是:init、foo、baba、s、del
python自动化--语言基础五面向对象、迭代器、range和切片的区分的更多相关文章
- Python自动化--语言基础5--面向对象、迭代器、range和切片的区分
面向对象 一.面向对象代码示例: 1 class Test(): #类的定义 2 car = "buick" #类变量,定义在类里方法外,可被对象直接调用,具有全局效果 3 def ...
- Python自动化--语言基础7--操作日志、加密、发送邮件、线程、生产者消费者
1.操作日志 logging.basicConfig:日志的统一处理器,对日志的输出格式和方式做配置日志级别等级CRITICAL > ERROR > WARNING > INFO & ...
- Python自动化--语言基础4--模块、文件读写、异常
模块1.什么是模块?可以理解为一个py文件其实就是一个模块.比如xiami.py就是一个模块,想引入使用就在代码里写import xiami即可2.模块首先从当前目录查询,如果没有再按path顺序逐一 ...
- Python自动化--语言基础3--字典、函数、全局/局部变量
字典 dict1 = {'name':'han','age':18,'class':'first'} print(dict1.keys()) #打印所有的key值 print(dict1.values ...
- Python自动化--语言基础2--运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ! ...
- python自动化--语言基础四模块、文件读写、异常
模块1.什么是模块?可以理解为一个py文件其实就是一个模块.比如xiami.py就是一个模块,想引入使用就在代码里写import xiami即可2.模块首先从当前目录查询,如果没有再按path顺序逐一 ...
- python自动化--语言基础二运算符、格式化输出、条件语句、循环语句、列表、元组
运算符包括:算术运算符.比较运算符.赋值运算符.逻辑运算符.成员运算符.身份运算符. 算术运算符 % 取模(余数) // 取相除的整数部分 / (5/2=2.5) 比较运算符 == 等于 ...
- Python自动化--语言基础8--接口请求及封装
基于http协议,最常用的是GET和POST两种方法. 接口文档需要包含哪些信息: 接口名称接口功能接口地址支持格式 json/xml请求方式请求示例请求参数(是否必填.数据类型.传递参数格式)返回参 ...
- Python自动化--语言基础6--模块操作之re、MySQL、Excel
1.Python自有模块正则 import re # re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None print(re.match("aaa ...
随机推荐
- MongoDB小结05 - update【$set & $unset】
用$set指定一个键的值,如果不存在,就创建它.这对更新模式或者增加用户定义很有帮助. db.user.insert({"name":"codingwhy.com&quo ...
- Java线程:Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果. Callable接口类似于Runnable,从名字就可以看出来了,但 ...
- pycharm内存不足时如何修改设置?
Help->Find Action->(type "VM Options")->(Click)"Edit Custom VM Options" ...
- SpringMVC导出Excel
import java.math.BigDecimal; import java.net.URLEncoder; import java.text.SimpleDateFormat; import j ...
- Unix - 文件里构成一个空洞的分析
lseek函数显示地为一个打开文件设置偏移量,文件偏移量能够大于文件的当前长度,在这样的情况下.对该文件的下一次写将加长该文件.并在文件里构成一个空洞,这一点是同意的. 位于文件里但没有写过的字节都被 ...
- Android学习笔记-tween动画之xml实现
继上篇tween动画的java实现:http://www.cnblogs.com/fengtengfei/p/3957800.html, 这里我接着介绍一下tween动画的xml实现的方法, 首先 ...
- iOS开发——常见BUG——window决定程序的状态栏管理问题
Xcode7升级之后遇到的问题 问题一: 老项目在Xcode6上运行没有任何问题,但在Xcode7上运行直接崩了! 经过一波分析: 发现是因为我顶部状态栏处添加了topWindow,用于处理Tab ...
- 大文本 通过 hadoop spark map reduce 获取 特征列 的 属性值 计算速度
大文本 通过 hadoop spark map reduce 获取 特征列 的 属性值 计算速度
- YTU 2504: 蚂蚁感冒
2504: 蚂蚁感冒 时间限制: 1 Sec 内存限制: 128 MB 提交: 273 解决: 118 题目描述 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右.每只蚂蚁都只能沿 ...
- UIColor与十六进制字符串互转
UIColor转十六进制字符串 方法一:经过测试发现部分颜色会转化为#fffff(五个f),转化残缺导致最后颜色无法还原,不推荐使用. // UIColor转#ffffff格式的字符串 + (NSSt ...