首页 / PYTHON / python 15篇 面向对象
python 15篇 面向对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 15篇 面向对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3233字,纯文字阅读大概需要5分钟。
内容图文
![python 15篇 面向对象](/upload/InfoBanner/zyjiaocheng/624/215db50d6cbc4cbea0d15047d6f50f4b.jpg)
1.面向对象编程概念
面向对象是包含面向过程
面向过程编程
买车:
1、4s看车,买车
2、上保险 保险公司
3、交税 地税局
4、交管所 上牌
面向对象编程
卖车处:
1、4s
2、保险
3、交税
4、上牌
类
一个模型、一个例子
实例/对象
实例,通过模型来造具体的东西
实例化
把模型变成实例的过程
构造函数
类在实例化的时候,会自动执行
__init__()
def __init__(self, name, sex): # 构造函数,1.类在实例化时自动执行的函数 2.如果要使用这个类,必须要传一些参数 self.name = name self.sex = sex self.birthday = time.time() self.cry()
self
本类对象
self就是你实例化的那个变量
self.xxx=xxx
在别的函数里就直接可以用了
析构函数
实例被销毁的时候自动执行的函数
__def__()
def __del__(self): # 析构函数是实例被销毁的时候执行。比如关闭数据库的游标、数据库或关闭文件 print('我是析构函数')
私有
不是公共的,只能在类里面调用,不能在类外面调用
函数/变量以__开头,就是私有的
def __close(self): # __代表是私有的(可以用来限制变量或函数),只能通过self调用,不能用类名调用 self.cursor.close() self.conn.close()
2.面向对象编程小例子
import traceback import pymysql from loguru import logger mysql_info = { 'host': '118.24.3.40', 'user': 'jxz', 'password': '123456', 'port': 3306, 'db': 'jxz', 'charset': 'utf8', 'autocommit': True } class MySQL: def __init__(self,host,user,password,db,charset,autocommit=True): self.conn = pymysql.connect(user=user,host=host,password=password,db=db,charset=charset,autocommit=autocommit) self.cursor = self.conn.cursor() def __del__(self): # 析构函数是实例被销毁的时候执行。比如关闭数据库的游标、数据库或关闭文件 self.__close() def execute(self,sql): try: self.cursor.execute(sql) except: logger.error('sql执行出错,sql语句是{}', sql) logger.error(traceback.format_exc()) def fetchall(self, sql): self.execute(sql) return self.cursor.fetchall() def fetchone(self, sql): self.execute(sql) return self.cursor.fetchone() def __close(self): # __代表是私有的(可以用来限制变量或函数),只能通过self调用,不能用类名调用 self.cursor.close() self.conn.close() if __name__ == '__main__': my = MySQL(**mysql_info) print(my.fetchone('select * from '))
3.面向对象编程的其他知识点
类方法
类里面自带的方法,不用实例化就可以调用,想象,模型上自带的功能
类方法是公共的,在实例方法里面可以随意调用
但是在类方法里不能调用实例方法,不能使用实例变量,但是他可以调用其他的类方法
@classmethod def putonghua(cls): # 类方法不需要实例化就可以调用 print(cls.country) print('会说普通话') # cls.name # 不能调用实例属性
类变量
类在定义好的时候,就把这个变量定义好了,也是公共的
class Person: country = 'China' # 类变量,在定义类时,就已经在类里面了,使用类名.变量名调用
实例方法
实例化后才能调用的方法
实例变量
实例化后才能调用的变量
属性方法
看起来像变量的函数
# 属性方法,使用property修饰器,不能有参数,必须有返回值 @property def age(self): return int(time.time() - self.birthday)
静态方法
一个和类没有关系的方法,就是一个普通的方法,只是写在类里面而已
不能调用实例方法,也不能调用类方法
@staticmethod def suangua(): print('静态方法,啥也干不了')
继承
子类继承父类公共的方法,也可以重写父类的方法
父类的私有变量和私有方法不能继承
重写:
1.直接覆盖父类方法
2.在父类的基础上添加新的功能
class Lw: def driver(self): print('kaiche') def make_money(self): print('5000块钱') class Xw(Lw): # 重写,覆盖式 def driver(self): print('开飞机') def make_money(self): # 重写,在父类基础上做修改 super().make_money() # super():自动找父类 print('再挣5000块钱')
内容总结
以上是互联网集市为您收集整理的python 15篇 面向对象全部内容,希望文章能够帮你解决python 15篇 面向对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。