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. 【原】KMeans与深度学习模型结合提高聚类效果

    这几天在做用户画像,特征是用户的消费商品的消费金额,原始数据(部分)是这样的: id goods_name goods_amount 男士手袋 1882.0 淑女装 2491.0 女士手袋 345.0 ...

  2. CSS基本知识6-CSS字体

    首先要考虑的是文本的排版,实际上有这玩意,Word还需要吗?不需要了.我们列下文本所涉及的操作: CSS 文本属性 属性 描述 color 设置文本颜色 direction 设置文本方向. line- ...

  3. 微信快速开发框架(九)-- V3.0发布,代码已更新至Github 新增微店功能

    版本内容 1.修正了缺少对Event.View的支持 2.增加了用户UnionID 3.新增微信小店功能 4.多客服功能 5.单元测试 什么是UnionID 我们知道,每个用户针对一个微信公众账号都有 ...

  4. 二维RMQ

    求二维ST表 ;k<=;k++) ;l<=;l++) ;i<=n;i++) ;j<=m;j++){ <<(l-)),m+),tx=min(n+,i+(<< ...

  5. javascript 中断函数的使用 setInterval();

    <script type="text/javascript"> var i=1; var IR1 = setInterval("myMethod()" ...

  6. 【UOJ #246】【UER #7】套路

    http://uoj.ac/contest/35/problem/246 神奇!我这辈子是想不出这样的算法了. 对区间长度分类讨论:题解很好的~ 我已经弱到爆了,看完题解后还想了一晚上. 题解中&qu ...

  7. android开发之存储数据

    android数据存储之SharedPreferences 一:SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配 ...

  8. bzoj2091【Poi2010】The Minima Game

    直接dp就好了 每个人肯定会去选最大的,用dp[i]表示选了后i个点时先手-后手的最大值(因为从后往前扫才好转移啊 QwQ~) dp[i]=max(c[j]-dp[j-1]),(j<=i) 直接 ...

  9. <<< html编码中js和html编码不一致导致乱码

    在html中,有时把编码设置成UTF-8之后,引入js,页面不会有乱码,但是有关js的东西会出现乱码, 大概问题就是js默认编码不是UTF-8, 解决办法:将js文件用记事本打开,在另存为,保存的时候 ...

  10. Arcgis10安装说明

    注意无需覆盖任何文件,只需根据文章后面的内容自己随机建一个任意格式的文本文件即可   安装license manager,将后面的license 内容新建一个文本文档拷贝进去.使用这个文件作为lice ...