面向对象编程:把以前你写的那些函数封装到一个类里面
类:定义类的时候,类名的首字母都大写,用类的话,必须得先实例化
构造函数:类被实例化的时候,它会自动的执行构造函数。
属性:类里面的变量
方法:类里面的函数。
self代表的是本类对象。
实例就是对象,实例变量和类变量
私有函数
私有变量
只能在类里面使用,出了类就不能用了。
继承
父类有的功能、变量子类全有。
如果定义的类,有很多重复功能的,那就可以把这些重复的类,定义成父类
封装
多态 python不支持多态
一种方法多种实现。
实例方法,必须得实例化后才可以调用
属性方法 你看上去好像是一个属性,其实是一个函数,也得实例化才能调用
类方法
不需要实例化就能直接用的,它可以使用类变量和类方法。
#类方法,也不需要实例化,直接就能用。它静态方法高级一点
#它可以使用类变量和类方法。
静态方法
不需要实例化就能直接用的,其实和类没有什么关系,就是一个普通的函数
写在了类里面而已,也用不了self的那些东西,也调用不类里面的其他函数。
修改父类的构造函数
class Car():#模型,模板 def __del__(self): #析构函数,这个实例被销毁的执行的。 print(‘over..‘) def my_self(self): print( ‘我是一个汽车 我的颜色是【%s】,我有【%s】个窗户‘%(self.color,self.window) ) self.price = 10002 def run(self): print(self.color) print(self.window) print(self.price) print(‘汽车在跑。。。‘) def __init__(self,color,window): # #构造函数,是类在初始化的时候会执行它 #如果你的类在实例化的时候要传入一些参数,那么你就要在__init__这个函数里写参数了 self.color = color #绑定属性 self.window = window print(‘执行我了。。‘) #把模型做成实际的一个汽车,这个过程叫做实例化。bus = Car(‘黄色‘,‘3开门‘) #实例化bus2 = Car(‘黑色‘,‘4开门‘) #实例化bus3 = Car(‘粉色‘,‘2开门‘) #实例化bus.my_self() #bus2.my_self()bus3.my_self() #实例就是指具体造出来的东西,通过类实例化处理的东西,就是实例#对象,就是实例
操作数据库(封装一个mysql的类)
import pymysqlclass OpMySql1: #经典类 pass class OpMySql(object):#新式类 def __init__(self,host,user,password,db,port=3306,charset=‘utf8‘): schema = { ‘user‘:user, ‘host‘:host, ‘password‘:password, ‘db‘:db, ‘port‘:port, ‘charset‘:charset } try: self.coon = pymysql.connect(**schema) except Exception as e: print(‘数据库连接异常!%s‘%e) quit(‘数据库连接异常!%s‘%e) else:#没有出异常的情况下,建立游标 self.cur = self.coon.cursor(cursor=pymysql.cursors.DictCursor) def execute(self,sql): try: self.cur.execute(sql) except Exception as e: print(‘sql有错误%s‘%e) return e if sql[:6].upper()==‘SELECT‘: return self.cur.fetchall() else:#其他sql语句的话 self.coon.commit() return ‘ok‘ def __del__(self): self.cur.close() self.coon.close() ybq = OpMySql(‘211.149.218.16‘,‘jxz‘,‘123456‘,db=‘jxz‘) #实例化 print(ybq.execute(‘select * from stu;‘))print(ybq.execute(‘select * from stu;‘))print(ybq.execute(‘select * from stu;‘)) self总结
class My(): def __init__(self,name): self.name = name self.cry() def cry(self): #实例方法,必须得实例化后才可以调用 print(‘%s在哭。。。‘%self.name) def learn(self): self.skill = [‘开车‘] def my_self(self): print(‘我的名字【%s】 我会%s‘%(self.name,self.skill)) wsl = My(‘王思磊‘) # self = wslwsl.skill = ‘浪‘wsl.learn()wsl.skill.append(‘浪‘)wsl.skill.append(‘骚‘)wsl.skill.append(‘贱‘)wsl.my_self()wsl.learn()wsl.my_self() 实例变量
class Person(object): country = ‘China‘ #类变量 def __init__(self,name,age,sex): self.name = name #实例变量,必须实例化之后才能用,成员变量 self.age = age self.sex = sex def say_my_country(self): print(self.country) #print(Person.country) # dsx = Person(‘大师兄‘,23,‘男‘)# print(dsx.name)# print(dsx.age)# print(dsx.sex)# print(dsx.country)# ybq = Person(‘原宝青‘,28,‘男‘)
原文地址:https://www.cnblogs.com/flynn0825/p/8439899.html
时间: 2024-08-02 08:42:44