Python之面向对象编程学习
不知不觉,学到了python的面向对象编程思想。今天我们来讨论下面向对象编程的思想。
顾名思义,面向对象,就是面向于对象,这里所说的对象不是你现实生活中你的女朋友,你的老婆,你的爱人,在编程的世界里面,一切都是对象,万物皆是对象。
面向对象的主要的两个方面是类与对象。 在python中使用面向对象编程思想可以让我们节省很多时间,提高我们的效率,在python中创建一个类通常用class来表示。
让我们来一一去分析他们。
#coding:utf-8
print 'This is test' class lei: #创建一个新的类名,我们用class创建
def test(self): #这是方法 self的意思就是自身,相当于javascript里面的this一样。在这里是规定。
print 'this is test!' #同属于方法
shili=lei() #这是对象,也可以叫是为这个对象创建新的实例
shili.test()#对方法中函数的调用,直接调用就好了
简单的讲解了下含义,我感觉我注释部分讲解的很清楚了。大家认真看。
使用方法的特殊名字__init__,讲解他的特殊含义。
#coding:utf-8 class lei:
def __init__(self,name):
self.name=name #自身的名字=名字,一次赋值
def helloworld(self):#上面的做法传导给了下面的helloworld互相有关联
print 'helloworld is %s'%self.name #%s是元组打印语句的时候经常用到这里也可以使用。 shili=lei('jack_chen') #因为使用了特殊的方法名字所以我们可以直接在对象中调用
shili.helloworld() #直接调用hellowworld函数,看不懂可以多看几遍
复制我的代码自己实验一遍就可以了。
这里我就简单的介绍下__init__,除了__init__还有__del__这些,还有其他方法的特殊名字,并且有他们的特殊意义。
面向对象编程的编程之继承
面向对象编程给我们带来的好处就是代码的重用,实现这种重用的方法之一是通过继承机制来实现。
我是这样来理解继承的,继承就是把相同的属性丢给继承这个大的父类型,然后属于我的特殊属性丢给我的子类型,当我子类型需要公共的类型的时候,我们不需要一行行写属性那么麻烦,我们只需要调用继承就好了,然后我们就拥有了继承的属性,并且拥有自身的特殊属性,继承是公共的,所有人都能用,但是你需要去调用他。
通过一个实例去理解他:
#coding:utf-8
#继承的简单学习
#这里运用一个学校的例子,继承的总类型是name和age
#特殊的部分是老师的salary(薪水)以及学生的marks(成绩)
class schoolmember:
def __init__(self,name,age):
self.name=name #属于公共的方法
self.age=age #属于公共的方法
print 'My name is %s and my age %d'%(self.name,self.age) class teacher(schoolmember): #接收的类型为继承类
def __init__(self,name,age,salary):
schoolmember.__init__(self,name,age) #1继承了父类的name和age,我们不需要在self.name=name,self.age=age,直接调用即可
self.salary=salary
print 'the teacher salary %d and teacher name is %s'%(self.salary,self.name) class student(schoolmember):
def __init__(self,name,age,marks):
schoolmember.__init__(self,name,age) #与#1原理同上
self.marks=marks #特殊的方法
print 'student name:%s and age:%d and marks:%s'%(self.name,self.age,self.marks) t=teacher('jack',30,5000) #创建的t实例,因为是__init__所以直接调用
s=student('Lisa',12,80) #创建的s实例,因为是__init__所以直接调用
大家复制粘贴我的代码就懂了。还是把输出部分贴给大家吧,方便理解
My name is jack and my age 30
the teacher salary 5000 and teacher name is jack
My name is Lisa and my age 12
student name:Lisa and age:12 and marks:80
大家看不懂多看几遍。教程到此结束,纯属原创。
Python之面向对象编程学习的更多相关文章
- PyTorch框架+Python 3面向对象编程学习笔记
一.CNN情感分类中的面向对象部分 sparse.py super(Embedding, self).__init__() 表示需要父类初始化,即要运行父类的_init_(),如果没有这个,则要自定义 ...
- python面向对象编程学习
python面向对象编程 基本概念理解 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作 ...
- Python:面向对象编程3 定制类(有更新)
Python:面向对象编程3 定制类(有更新) ⚠️本文主要内容为对Data model相关知识点的提取学习记录.(内容来自文档和部分网页教程案例) ⚠️:这个连接指向<流畅的python&g ...
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- python 面向对象编程学习
1. 问题:将所有代码放入一个py文件:无法维护 方案:如果将代码才分放到多个py文件,好处: 1. 同一个名字的变量互相不影响 2.易于维护 3.引用模块: import module 2.包:解决 ...
- Python基础 — 面向对象编程基础
目录 1. 面向对象编程基础 2. 定义类和创建对象 3. init() 方法 4. 魔法方法 5. 访问可见性问题 5. 练习 1. 面向对象编程基础 把一组数据结构和处理它们的方法组成对象(obj ...
- python基础-面向对象编程
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...
- python之面向对象编程
1.面向对象介绍: 世界万物,皆可分类 世界万物,皆为对象 只要是对象,就肯定属于某种类 只要是对象,就肯定有属性 2. 面向对象的几个特性: class类: 一个类即对一类拥有相同属性的对象的抽象, ...
- php面向对象编程学习之高级特性
前几天写了一篇关于php面向对象基础知识的博客,这两天看了php面向对象的高级特性,写出来记录一下吧,方便以后拿出来复习. 面向对象除了最基本的定义类之外,最主要就是因为面向的一些高级特性,运用这些高 ...
随机推荐
- POJ1108_Split Windows 解题报告
Split Windows 题目链接:http://poj.org/problem?id=1108 题目大意: 给你一棵二叉树的先序遍历,有三种字符:|.-.A~Z,然后用窗口表示出来,|: 表示将当 ...
- synchronized无法禁止指令重排序的证明
package demo.reorder; import java.util.concurrent.ExecutorService; import java.util.concurrent.Execu ...
- Python——Flask框架——Web表单
一.框架Flask-WTF 安装: pip install flask-wtf 需要程序设置一个密钥 app = Flask(__name__) app.config['SECRET_KEY'] = ...
- c++ 怎么输出保留2位小数的浮点数
//添加头文件 #include<iomanip> //定义变量 folat a=9.1; cout<<setiosflags(ios::fixed)<<setpr ...
- Nginx 用分片提示缓存效率
L:107 slice 模块 Syntax:slice size;Default: slice 0; Context:http, server, location 功能:通过range协议将大文件分解 ...
- Android PowerManager电源管理(Android N )
./frameworks/base/core/java/android/os/PowerManager.java该类提供给Application访问电源相关接口. 它的内部类WakeLock是定义的唤 ...
- 洛谷p2661信息传递题解
题目 这个题一眼看上去就是用并查集求最小环. 我们可以设两个数组分别是f,d分别表示该点的爸爸和该点到祖先的距离. 当该点的爸爸等于他时,那他肯定就是祖先. 此时信息就肯定传递完了,此时的整个图中(我 ...
- Quartus prime 16.0 in_system memory content editor 使用
前言 quartus提供了片内存储器的实时查看与修改,而不用编译工程,很棒.你可以方便的查看到存储器中到底存储了什么东西. 流程 1.打开: 2.主界面: 3.设置jtag项之后,查看即可. sign ...
- 普通Splay详解
预备知识: 二叉搜索树(BST) 至于BST,随便看一下就可以, 我们知道二叉搜索树是O(logN)的,那我们为什么要用平衡树呢? 之前我们了解到,BST的插入是小的往左子树走,大的往右子树走,如果凉 ...
- maven编译时出现There are test failures
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.10:test (default-tes ...