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

面向对象

一、面向对象代码示例:

 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCIR601和CCIR656标准的区别

关于这两种信号的区别: ITU-R BT 601:16位数据传输;21芯;Y、U、V信号同时传输。 ITU-R BT 656:9芯,不需要同步信号;8位数据传输;串行视频传输;传输速率是601的2倍;先传Y,…

ssis mysql to server_SSIS:将表从MySQL复制到SQL Server 2008

SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Errorcode: 0x80040E21. An OLE DB record is available. Source: “MicrosoftSQL Server Native Client 10.0” Hresult: 0x80040E21 Description:“Multiple-step OLE DB operation generated errors. Chec…

Spring Boot 入门之缓存和 NoSQL 篇(四)

原文地址:Spring Boot 入门之缓存和 NoSQL 篇(四) 博客地址:http://www.extlight.com 一、前言 当系统的访问量增大时,相应的数据库的性能就逐渐下降。但是,大多数请求都是在重复的获取相同的数据&#xff…

Silverlight 2.5D RPG游戏技巧与特效处理:(七)动画特写

Silverlight中的HLSL不仅适用于场景与动画渲染,对于游戏中的角色,我们同样可以利用它制作动画特写。较常见的比如角色传送时的淡入淡出、扭曲变形、幻化呈现等切换动画,当然还有例如角色被DeBuff时所表现出来的放大缩小以及虚弱时的不规则体形…

mysql myisampack_每天进步一点达——MySQL——myisampack

一、简单介绍myisampack是一个压缩使用MyISAM引擎表的工具,通常会压缩40%~70%,当须要訪问数据。server会将所须要的信息读入到内存中。所以当訪问详细记录时,性能会更好,由于仅仅须要解压一条记录MySQL使用mmap()对变哦进行压缩映射&#xff…

实现搜索功能

准备视图函数search()修改base.html 中搜索输入框所在的<form action"{{ url_for(search) }}" method"get"> <input name"q" type"text" placeholder"请输入关键字">完成视图函数search()获取搜索关键字q re…

日本核辐射究竟有多可怕?

你应该已经知道了由于日本海啸引起的核电站事故。大量无辜的人在得知放射性原料&#xff08;物质&#xff09;泄露的消息之后&#xff0c;都感到害怕和恐慌。 而让你保持冷静的唯一方法&#xff0c;就是掌握正确的科学知识。 有关核辐射的知识 这里有一些信息&#xff1a;   …

mysql下载安装及配置_mysql的下载,安装和配置

顺道向大家介绍一下mysql的安装和配置&#xff0c;mysql数据库应该说是现在整个互联网行业最流行的数据库了&#xff0c;简单易用1.下载&#xff0c;大家可以去官网下载最新的mysql版本&#xff0c;地址&#xff1a;http://dev.mysql.com/downloads/mysql/5.6.html&#xff0c;…

[svc]gns3模拟器及探讨几个bgp问题

模拟器 链接&#xff1a;https://pan.baidu.com/s/1geMcmND 密码&#xff1a;7iir gns0.8.6的版本好用 思科的这个iso好用: c3660-js2-mz.124-21a.bin C2691-AD.BIN(这个也很ok,但是这两个支持的hash算法较少) ctrlshit6 停止命令 R1(config)#crypto isakmp policy 10 R1(confi…

算法导论8.3-4习题解答(基数排序)

CLRS 8.3-4 : 说明如何在O(n)时间内&#xff0c;对0到n^2 - 1之间的n个整数进行排序。 算法思想&#xff1a; 1.把这n个数看成n进制数&#xff0c;那么每个数只有两位&#xff0c;因而循环只需两次 2.调用通用的基数排序(在这写着&#xff0c;留着以后用) 在此题中&#xff0c…

mysql open-files-limit_在mysql 5.5中更改open-files-limit

我在使用open-files-limit参数在Ubuntu 12.04上运行mysql 5.5时遇到问题.我最近注意到由于1024限制导致的一些问题,实际上主系统限制设置为1024,所以我使用以下内容修改了/etc/security/limits.conf&#xff1a;* soft nofile 32000* hard nofile 32000root soft nofile 32000r…

Lucas定理

定义 对于任意质数p $\Huge C_m^n\equiv C_{\biggl\lfloor\frac{m}{p}\biggr\rfloor}^{\biggl\lfloor\frac{n}{p}\biggr\rfloor}*C_{m\ mod\ p}^{n\ mod\ p}\ \ (MOD\ p)$ 证明 对于任意质数p都有 $\huge C_p^i\equiv0\ MOD\ p(i\not 0\&\&i\notp)$ 通过二项式定理&…

Reverse-engineer Source Code into UML Diagrams

今天同事需要反向生成类图&#xff0c;用PowerDesigner 转了一份&#xff0c;不甚满意&#xff0c;在网上逛了逛&#xff0c;发现在这篇文章挺不错。 I have been on several teams where we studiously designed UML diagrams at the beginning of the project. As the projec…

mysql数据库优先_MySQL数据库配置文件之优先级

1.数据库配置方式1)预编译cmake . -DCMAKE_INSTALL_PREFIX/application/mysql-5.7.20 -DMYSQL_DATADIR/application/mysql-5.7.20/data -DMYSQL_UNIX_ADDR/application/mysql-5.7.20/tmp/mysql.sock -DDEFAULT_CHARSETutf8 -DDEFAULT_COLLATIONutf8_general_ci -DWITH_EXTRA_CH…

What's the best way to get rid of get parameters from url string?

https://stackoverflow.com/questions/27267111/whats-the-best-way-to-get-rid-of-get-parameters-from-url-string转载于:https://www.cnblogs.com/jianglijs/p/8081564.html

wince版本ffmpeg的编译 第四篇

4. 编译faac#cd faac-1.28#dos2unix bootstrap //这里是要转换编码格式的&#xff0c;不然configure过不去#dos2unix configure.in#dos2unix Makefile.in#chmod x bootstrap#./bootstrap#./configure –prefix/wm –enable-static –hostarm-mingw32ce –without-mp4v2#make …

R语言数据去重

R语言常用的去重命令有unique duplicated unique主要是返回一个把重复元素或行给删除的向量、数据框或数组 > x <- c(3:5, 11:8, 8 0:5)> x [1] 3 4 5 11 10 9 8 8 9 10 11 12 13> unique(x)[1] 3 4 5 11 10 9 8 12 13> unique(x, fromLast TRUE)…

postman测试带权限接口_接口测试工具:postman

一、postman简介一般简单的接口测试我们可以直接在浏览器里面进行调试&#xff0c;但是涉及到一些要权限设置的就无法操作了&#xff0c;因此我们需接口测试的相关工具&#xff1b;Postman 是一个接口测试和 http 请求的工具。官网下载地址&#xff1a;https://www.getpostman…

记录在Spring-Boot中使用Fegin调用RESTfull的PATCH方法设置

使用了ZooKeeper&#xff0c;设置 spring.cloud.zookeeper.dependency.headers.enabledfalse 参考&#xff1a; https://github.com/spring-cloud/spring-cloud-netflix/issues/2550#issuecomment-353230054 http://blog.csdn.net/menggudaoke/article/details/77884674转载于:…

mysql getcolumnname_jdbc-mysql基础 ResultSetMetaData getColumnName getColumnLabel 得到列的名字和别名...

礼悟&#xff1a;好好学习多思考&#xff0c;尊师重道存感恩。叶见寻根三二一&#xff0c;江河湖海同一体。虚怀若谷良心主&#xff0c;愿行无悔给最苦。读书锻炼强身心&#xff0c;诚劝且行且珍惜。数据、数据&#xff0c;命根就在数据。云计算、AI等技术&#xff0c;都是以数…