面向对象编程:

一个种类、一个模型
实例、实例化、对象
实例、对象:
根据模型制作出来的东西。
实例化:
就是做东西的这个过程。
    class My:
    my=My()
私有
方法
类里面的函数
属性
类里面的变量
构造函数
类在实例化的时候会自动执行的一个函数
class MyDb:
def __init__(self,host,user,password,db,port=3306,charset='utf8'):#构造函数,
print('连接数据库')
self.conn = pymysql.connect(host=host,user=user,password=password,
db=db,port=port,charset=charset)
self.cur = self.conn.cursor() def execute_one(self,sql):
print('返回单条数据')
self.cur.execute(sql)
res = self.cur.fetchone()
return res
my=MyDb('127.0.0.3','jxz',123456,'jxz') #实例化
        析构函数
实例在销毁的时候自动执行的函数
def __del__(self): self
代表的本类对象。
       一个变量前面加了self之后,在整个类中的其他函数都可以用了
类变量:
就在直接在类下面定义的变量,没有加self的,每个实例都可以用
class Car:
wheel = 4 #类变量
def __init__(self,color,p):
self.color = color #实例变量
self.p = p
        类方法:
1、不需要实例化就可以调用
2、它可以使用类变量
3、调用其他的类方法。
4、它不可以使用实例方法、实例变量
如果类里面的这个方法,它并没有使用到其他的实例变量、或者其他实例方法,那么就给他定义成类方法
    class Car:
      @classmethod
      def check_wheel(cls):
         print(cls.wheel)
    Car.check_wheel()
静态方法:
1、不需要实例化就可以调用的
2、它就是一个定义在类里面的普通函数,不能使用实例变量、实例方法、不能使用类变量、类方法。
    @staticmethod
    def help():
      print('uuu')
属性方法:
看起来像变量的一个方法。
  class My
    @property
    def name(self):
      return 'a'
my=My()
  my.name 实例变量:
self.xxx = xxx
加了self的变量才是实例变量,必须得实例化之后才可以使用 实例方法:
需要传self的方法,都是实例方法,必须得实例化之后才可以使用
实例方法里面可以随便通过self来调用实例方法,类方法,静态方法,类变量。
私有:
变量、函数,前面加两个下划线就代表是一个私有的,只能在类里面用。
        def test(self):
          self.__password = 123456
        继承:
class Lm:
money = 1000000
house = 5
def driver(self):
print('会开车') class Mcb(Lm):
def about_me(self):
print('我有 %s 钱 ,%s 房子'%(self.money,self.house))
self.driver()
super:
在父类某个方法的基础上再增加新功能:
super().xxx()
super()会自动找到父类

class Car:
def run(self,):
print('running...')
return 'abc'
class NewCar(Car):
def run1(self):
res = super().run()# super()的意思就是找到父类
print('fly...',res)
 

python简说(二十五)面向对象的更多相关文章

  1. Py修行路 python基础 (二十五)线程与进程

    操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...

  2. Appium+python自动化(二十五)- 那些让人抓耳挠腮、揪头发和掉头发的事 - 获取控件ID(超详解)

    简介 在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获 ...

  3. Python学习(二十五)—— Python连接MySql数据库

    转载自http://www.cnblogs.com/liwenzhou/p/8032238.html 一.Python3连接MySQL PyMySQL 是在 Python3.x 版本中用于连接 MyS ...

  4. Python学习札记(三十五) 面向对象编程 Object Oriented Program 6

    参考:实例属性和类属性 NOTE Python是动态语言,根据类创建的实例可以任意绑定属性. class Student(object): def __init__(self, name): self ...

  5. Python学习札记(二十五) 函数式编程6 匿名函数

    参考:匿名函数 NOTE 1.Python对匿名函数提供了有限的支持. eg. #!/usr/bin/env python3 def main(): lis = list(map(lambda x: ...

  6. [Python爬虫] 之二十五:Selenium +phantomjs 利用 pyquery抓取今日头条网数据

    一.介绍 本例子用Selenium +phantomjs爬取今日头条(http://www.toutiao.com/search/?keyword=电视)的资讯信息,输入给定关键字抓取资讯信息. 给定 ...

  7. Python学习日记(二十五) 接口类、抽象类、多态

    接口类 继承有两种用途:继承基类的方法,并且做出自己的改变或扩展(代码重用)和声明某个子类兼容于某基类,定义一个接口类interface,接口类中定义了一些接口名(就是函数名)且并未实现接口的功能,子 ...

  8. python接口自动化测试二十五:执行所有用例,并生成HTML测试报告

        import requestsimport unittest class TestQQ(unittest.TestCase):    '''测试QQ号接口'''      # 此注释将展示到测 ...

  9. python简说(十五)MD5加密

    def my_md5(s): news = str(s).encode() m = hashlib.md5(news) return m.hexdigest()

  10. python学习(二十五) 链表方法

    # 链表 cars = ['a', "b"] print(cars) # 链表长度 print(len(cars)) # 结尾添加元素 cars.append("c&qu ...

随机推荐

  1. Python+Selenium框架设计之框架内封装基类和实现POM

    原文地址https://blog.csdn.net/u011541946/article/details/70269965 作者:Anthony_tester 来源:CSDN    博客地址https ...

  2. jmeter 发送加密请求 beanshell断言 线程组间传递参数

    原文地址https://www.cnblogs.com/wnfindbug/p/5817038.html 最近在做http加密接口,请求头的uid参数及body的请求json参数都经过加密再发送请求, ...

  3. 彻底理解什么是原型链,prototype和__proto__的区别以及es5中的继承

    再讲一遍好了( 参考https://blog.csdn.net/cc18868876837/article/details/81211729 https://blog.csdn.net/lc23742 ...

  4. vue中点击复制粘贴功能

    1.下载clipboard.js cnpm install clipboard --save 2.引入,可以在mian.js中全局引入也可以在单个vue中引入 import Clipboard fro ...

  5. LeetCode35.搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  6. Beta阶段冲刺前计划与安排

    凡事预则立,在Beta开始前,以小组为单位,在敏捷冲刺前发布一篇博客,描述: 1. 介绍小组新加入的成员,Ta担任的角色. 新加入的成员是丁蓉同学,在本团队中担任前端设计. 原因:在之前的团队中,她就 ...

  7. hdu4749 kmp改进

    这题说的是给了一个模板串 然后又给了一个串 需要找出类似的按个模板串 , 改相等的位置要相等 该大于的位置到大于 我们将模板串做好失配指针就ok了,然后匹配和原来的匹配不同,这个匹配需要的是相对匹配, ...

  8. EasyUI创建DataGrid及冻结列的两种方式

       第一种方式:通过HTML标签创建数据表格控件 <table class="easyui-datagrid" title="基本数据表格" style ...

  9. codeforces 980B Marlin

    题意: 有一个城市有4行n列,n是奇数,有一个村庄在(1,1),村民的活动地点是(4,n): 有一个村庄在(4,1),村民的活动地点是(1,n): 现在要修建k个宾馆,不能修建在边界上,问能否给出一种 ...

  10. Redis的key和value大小限制

    Redis的key和value大小限制        今天研究了下将java bean序列化到redis中存储起来,突然脑袋灵光一闪,对象大小会不会超过redis限制?不管怎么着,还是搞清楚一下比较好 ...