1.#类
#类就是一个模板,模板里可以包含多个函数,函数里实现一些功能
#定义一个类
class bar:
def foo(self,agr):
print(self,agr)
obj = bar()
print(obj)
print(obj.foo("调用类的方法"))
2.#方法
#把函数写在类里就是方法
#构造方法
#普通方法
class person:
def __init__(self,name,age):
#构造方法的特性,调用 类名() 后,自动执行构造方法
#self 谁调用类,谁就是self
self.n = name
self.a = age
self.xue = 0
def show(self): #普通方法
print("%s--%s"%(self.n,self.a))
obj = person("haha",20) obj.show()
3.#面向对象三大特性之一:封装
class bar:
def __init__(self,n,a):
self.name = n
self.age = a
self.xun = 0
b1 = bar("zhangw",11)
b2 = bar("haha",31)
4.#面向对象三大特性之二:继承
#self永远是执行该方法的调用者
#继承
class 父类:
pass
class 子类(父类):
pass
#子类可以调用父类的方法
#如果子类中有和父类一样的方法名,则优先调用自己的,也就是重写
#重写,防止执行父类的方法
#重写后,如果想要执行父类的方法
1.#super(子类,self).父类中的方法()
2.#父类名,父类中的方法(self,...) #python中支持多继承
#原则
#1.左侧优先,这里的左侧指的是调用的时候,比如:class zilei(fulei1,fulei2),fulei1 优先
#2.左侧找完再找右侧
#3。如果左右两侧最后汇聚到同一个根,则最后找根 5.#面向对象三大特性之三:多态
#原生多态,“鸭子类型”
#当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子
class F1:
pass
class S1(F1):
def show(self):
print(S1.show)
class S2(F1):
def show(self):
print(S2.show)
def Func(obj):
print(obj.show())
s1_obj = S1()
Func(s1_obj)
s2_obj = S2()
Func(s2_obj) 6.#类成员
#字段
#普通字段,保存在对象中,只能通过对象访问
#静态字段,保存在类中,可以用个类,或者对象访问
#方法
#普通方法,保存在类中,由对象直接调用,self = > 对象
#静态方法,保存在类中,由类直接调用
#类方法,保存在类中,由类直接调用cls = >当前类
class province:
country = "中国"
def __init__(self,name):
self.name = name
@staticmethod #静态方法
def jingtai():
print("我是静态方法,不需要对象")
@classmethod #类方法
def classmd(cls):
print(cls)
print("haha")
print(province.country)
hebei = province("河北")
print(hebei.name) province.jingtai()
province.classmd() #属性,特性
#@property
# 由属性的定义和调用要注意一下几点:
# 定义时,在普通方法的基础上添加 @property 装饰器;
# 定义时,属性仅有一个self参数
# 调用时,无需括号
# 方法:foo_obj.func()
#属性:foo_obj.prop
# ############### 定义属性 ###############
class Goods(object):
@property
def price(self):
print(property)
@price.setter
def price(self, val):
print(val)
@price.deleter
def price(self):
print(666)
# ############### 调用 ###############
#obj = Goods()
#obj.price # 自动执行 @property 修饰的 price 方法,并获取方法的返回值
#obj.price = 123 # 自动执行 @price.setter 修饰的 price 方法,并将 123 赋值给方法的参数
#del obj.price # 自动执行 @price.deleter 修饰的 price 方法

[python面向对象]--基础篇的更多相关文章

  1. 十六、python面向对象基础篇

    面向对象基础: 在了解面向对象之前,先了解下变成范式: 编程范式是一类典型的编程风格,是一种方法学 编程范式决定了程序员对程序执行的看法 oop中,程序是一系列对象的相互作用 python支持多种编程 ...

  2. Python开发【第七篇】:面向对象 和 python面向对象进阶篇(下)

    Python开发[第七篇]:面向对象   详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇)   上一篇<Python 面向对象(初级篇)> ...

  3. Python 面向对象 (进阶篇)

    <Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可 ...

  4. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  5. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  6. python面向对象基础

    面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...

  7. Python 面向对象基础知识

    面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...

  8. python 面向对象基础和高级复习

    面向对象基础 面向对象编程 面向过程编程:类似于工厂的流水线 优点:逻辑清晰 缺点:扩展性差 面向对象编程:核心是对象二字,对象属性和方法的集合体,面向对象编程就是一堆对象交互 优点:扩展性强 缺点: ...

  9. 1.Python面向对象基础

    面向对象(OOP) 面向对象编程--object oriented programming 简写 OOP   面向过程和面向对象的区别: 面向过程: 1.把完成某一个需求的所有步骤从头到尾逐步实现 2 ...

随机推荐

  1. Batsing的网页编程规范(HTML/CSS/JS/PHP)

    特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...

  2. Angular指令2

    scope Create a new scope for this directive rather than inheriting the parent scope. controller Crea ...

  3. B - Ignatius and the Princess IV DP

    #include<iostream> #include<vector> using namespace std; ]; int main() { int time,n,limi ...

  4. 【IIS】iis6.1下添加两个ftp站点,

    1,添加本地账户或密码||组  :[控制面板-->管理工具-->计算机管理器-->系统工具-->本地用户和组] 2,IIS站点目录先(添加FTP站点)[注意:多个站点多个端口] ...

  5. 使用属性动画 — Property Animation

    属性动画,就是通过控制对象中的属性值产生的动画.属性动画是目前最高级的2D动画系统. 在API Level 11中添加.Property Animation号称能控制一切对象的动画,包括可见的和不可见 ...

  6. RAM、DRAM、SD卡

    catalogue . ROM.RAM.DRAM.SRAM和FLASH的区别 . 内存工作原理 . DRAM基本结构与原理 . SD卡基本结构与原理 1. ROM.RAM.DRAM.SRAM和FLAS ...

  7. css新特性 box-flex/flex 弹性盒状模型

    新接触的,可是我的张大神早在2010年就写了box,box-flex的用法 大神把box-flex用狗血电视剧分家产剧情比喻,生动形象地说明,让我理解得容易了些,唉大神好贴心,举例说明满分 ----- ...

  8. 放下恩怨,曝小米中兴投关键性一票让华为顺利取得5G短码控制权

    如果说最近国内科技公司最牛逼最令人振奋的新闻是啥,显然,就是两天前在3GPP RAN1 87次会议的5G短码方案讨论中,华为顺利碾压高通,战胜列强,拿下了5G的控制编码方案的标准. 虽然说,目前,华为 ...

  9. win8.1系统的安装方法详细图解教程

    win8.1系统的安装方法详细图解教程 关于win8.1系统的安装其实很简单 但是有的童鞋还不回 所以今天就抽空做了个详细的图解教程, 安装win8.1系统最好用U盘安装,这样最方便简单 而且系统安装 ...

  10. Access应用笔记<四>-一个完整的自动化报表搭建过程

    距离之前的三篇日志已经很久啦,今天终于完成了一个比较完整的自动化报表搭建过程 基于公司数据保密原则,样板就不放到网上来了,简单说一下背景: 这次access实现的功能包括: 1)为部门整体搭建了一个员 ...