面向对象

一、面向对象代码示例:

 1 class Test():            #类的定义2     car = "buick"        #类变量,定义在类里方法外,可被对象直接调用,具有全局效果3     def __init__(self):    #构造方法4         self.name = 1      #成员变量,可以在类的不同方法间调用,也可以由类创建的对象进行调用5         print("name=",self.name)6 7     def say(self):         #类方法必须包含参数self,且为第一个参数8         address = "china"  #方法中的局部变量9         print("address=",address)
10
11         self.address = address #局部变量可以在类方法间使用
12
13     def cry(self):
14         print(self.address)    #打印上面局部变量
15
16     @staticmethod              #静态方法可以被类名直接调用
17     def fun1():
18         print("我是静态方法")
19
20 t = Test()   #t为类创建的对象
21 # print(t.car) #打印类变量
22 t.say()
23 t.cry()
24 Test.fun1()
25 #方法(函数)、类变量、成员变量(init)、局部变量(def)

二、类的继承,子类可以使用父类的方法,父类不可以使用子类的方法

三、方法重写:调用最新的方法

 1 class Parent():2     def myMthod(self):3         print("父类的方法")4 5 class Cjild(Parent):6     def myMthod(self):7         print("子类的方法")8 9 c = Cjild()
10 c.myMthod() #先调用自己的方法,也叫做方法重写

四、私有变量和方法

 1 class Info():2     def __init__(self):3         self.__name = 'xiaojia'  #私有变量(一般只能在类内部使用)4 5     def say(self):6         print(self.__name)       #类的内部调用7 8 a = Info()9 # print(a.__name)       #类的外部调用报错,无法调用
10 print(a._Info__name)    #注意:可以用a._Info__name这样的方式在类的外部调用,这就是python的灵活性

迭代器

1 #迭代器一次返回一个成员
2 list1 = [1,2,3,4]
3 it = iter(list1)   #创建一个对象并赋值给it
4 print(next(it))    #1
5 print(next(it))    #2
6 print(next(it))    #3
7 print(next(it))    #4

range和切片的比较:

range:

1 range(strat,end,step)
2 range(4) range(0,4) range(0,4,1)
3 range(-3,3)
4 range(3,-3,-1)
5
6 range(-3,3,-1)          #输出为空
7 range(0,4,-1)           #输出为空
8 range(3,2,1)            #输出为空

切片:

1 a[start,end,seq]
2 seq如果为正,从左往右走,如果start大于end显示为空
3 seq如果为负,从右往左走,如果start小于end显示为空
4 如果start为空,表示从头开始走
5 如果end为空,表示走到末尾
6 如果start和end都为空,取全部

如下 标记位:

# 0   1   2   3
# a   b   c   d
# -4 -3 -2  -1

练习:

 1 求圆的面积和周长2 from math import pi3 class Shape():4     def getArea(self,r):5         print("圆的面积是:%.2f"%(pi*(r**2)))6 7     def getLong(self,r):8         print("圆的周长是:%.2f"%(2*pi*r))9
10 y = Shape()
11 y.getArea(5)
12 y.getLong(5)

1 统计员工信息和工资2 class Employee:3 4     count = 05     def __init__(self,name,salory):6         self.name = name7         self.salory = salory8         self.count += 19
10     def emp_info(self):
11         print("name=",self.name,"salory=",self.salory)
12
13     def emp_count(self):
14         print("num=",self.count)
15
16 u = Employee('jia',100)
17 u.emp_count()
18 u.emp_info()
19 u = Employee('yannan',30000)
20 u.emp_count()
21 u.emp_info()

思考面向对象的执行顺序:

 1 class Test():2     s = "我是一个类变量,嘎嘎"3 4     def __init__(self):5         print("构造方法就是初始化,来一下")6         self.a = 1      #可以由类创建的对象调用7         self.b = 288 9     def __del__(self):
10         print("析构方法就是后期收拾残局的,我来")
11
12     def foo(self):
13         print("方法内的普通成员")
14
15     @staticmethod
16     def baba():
17         print("类的静态方法,我可以被类名直接调用哦,来来")
18
19 t = Test() #创建一个对象,对象啊对象
20 '''
21 思路:
22 init和del在类中仅且执行一次,init是初始化(先勤部队)del是收拾残局(后勤部队)
23 不管是几个方法的调用都会执行下init和del
24 '''
25 t.foo()         #如果单独执行打印init和del,中间打印foo
26 Test.baba()     #如果单独执行打印init和del,中间打印baba
27 print(Test.s)   #如果单独执行打印init和del,中间打印s
28
29 #如果一起执行打印的顺序是:init、foo、baba、s、del

转载于:https://www.cnblogs.com/ailiailan/p/8065218.html

Python自动化--语言基础5--面向对象、迭代器、range和切片的区分相关推荐

  1. python自动化--语言基础一数据类型及类型转换

    Python中核心的数据类型有哪些? 变量(数字.字符串.元组.列表.字典) 什么是数据的不可变性?哪些数据类型具有不可变性 数据的不可变是指数据不可更改,比如: 1 a = ("abc&q ...

  2. Python入门——语言基础

    Python入门--语言基础 文章目录 Python入门--语言基础 一.标准输入和输出 二.变量和常量 三.运算符 四.选择结构 六.注释 七.逻辑行 一.标准输入和输出 1.标准输入(注意:inp ...

  3. Python自动化开发基础 项目实战-监控系统 Day16-李杰-专题视频课程

    Python自动化开发基础 项目实战-监控系统 Day16-14487人已学习 课程介绍         课程特色:实战,细致,生动,深入浅出 适用人群:适合Python初学者 课程详情:从0基础开始 ...

  4. Python自动化开发基础 分布式监控系统开发实战 day8-李杰-专题视频课程

    Python自动化开发基础 分布式监控系统开发实战 day8-10994人已学习 课程介绍         从0基础开始讲解Python语法.流程控制.函数式编程.面向对象开发等重要的Python开发 ...

  5. 【实验三/四 面向对象程序设计/语言基础与面向对象】

    目录 一.实验目的和要求 二.实验内容 1.求最大公约数 2.复数 5.编写一个含有5个类的程序 三.参考 四.其他实验内容 [实验三 面向对象程序设计] 3.编写一个含圆类的程序 4.含圆类.圆柱类 ...

  6. Java语言基础,面向对象

    学习java的窍门: 多练 多想 语言基础第一天 笔记: java开发环境: 编译运行过程: 编译期:.java源文件,经过编译,生成.class字节码文件 运行期:JVM加载.class并运行.cl ...

  7. [黑马IOS自学第九篇]OC语言基础,面向对象概念,类的创建,OC多文件开发等

    Extends Coc .EnhancedCc++/ .C-like c# 会在github上开源一个库,如果是私有库要交钱,自己o公司的项目不要勾 会把源代码提交上去 <span style= ...

  8. python面向对象语言_Python语言基础之——面向对象编程

    1.类属性 1)类属性: 直接定义在类中的变量是类属性 类属性的值不会因为对象不同而不一样 2)对象属性 通过 self.属性名 = 值 定义在init函数中的属性 对象属性的值会因为对象不同而不一样 ...

  9. Python程序设计语言基础06(完):组合数据类型

    目录 1. 组合数据类型概述 2. 集合类型及操作 2.1 集合类型定义 2.1.1 集合类型概念 2.1.2 集合类型定义 2.2 集合操作符 2.3 集合处理方法 2.4 集合类型应用场景 2. ...

最新文章

  1. 【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质 | 证明过程 )
  2. jQuery框架的简单使用(H5)
  3. String ,StringBuilder,StringBuffer
  4. 实现一个简单的基于码云(Gitee) 的 Storage
  5. 数据库优化、数据库基础等常用知识点总结
  6. CentOS 7 安装 中文字体
  7. amr文件转mp3 php,PHP 将微信录音arm格式文件转mp3格式
  8. local.china java_java-JDBC无法登录到LocalDB实例,但是在SSMS中,...
  9. sift vlfeat 学习
  10. 技术面试时该反问面试官什么问题?
  11. 解决手机QQ或微信已开通邮件提醒,但收到邮件仍不提醒的问题
  12. 异或运算——小卡和质数
  13. Guava学习之Joiner
  14. java opencv磨皮算法_美肤磨皮算法OpenCV3实现
  15. ENVI标准格式文件转换为.tif文件——基于ENVI库函数
  16. 大话西游2服务器维护公告,大话西游2经典版:2019年05月09日停机维护公告
  17. 提取数据_基于众包的可视化图表数据提取
  18. android打开网址两种方法
  19. Python+Excel:将一个工作簿拆分为多个工作簿
  20. 仅当和当且仅当的区别

热门文章

  1. hdu3068马拉车
  2. fenby C语言 P30
  3. quick cocos2d-x 精灵大小(宽高)获取
  4. Spring中资源的加载ResourceLoader
  5. [pytorch、学习] - 5.4 池化层
  6. 符合skyline的3dml网络发布服务
  7. 封装之--通过类中公有方法访问私有成员变量
  8. iOS屏幕适配方案-Auto Layout
  9. WPF WebBrowser 加载 html ,出现安全警告, 运行 脚本和 activeX 控件,
  10. MySQL两千万数据优化迁移