day8-Python学习笔记(十八)面向对象,self,私有,属性方法

面向对象编程:把以前你写的那些函数封装到一个类里面

类:定义类的时候,类名的首字母都大写,用类的话,必须得先实例化

构造函数:类被实例化的时候,它会自动的执行构造函数。

属性:类里面的变量
方法:类里面的函数。

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

day8-Python学习笔记(十八)面向对象,self,私有,属性方法的相关文章

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

Python学习笔记十一:面向对象

面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重载:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重载. 实例变量:定义在方法中的变量,只作用于当前实例的类.

python学习笔记day6【面向对象编程】

面向对象编程 一.编程范式:编程的方法论.程序员编程的“套路”及“特点”特点总结,抽象成方法.规范. 二.面向对象编程介绍: 1.描述 世界万物,皆可分类:世间万物,皆为对象:只要是对象,就肯定属于某种品类:只要是对象,就肯定有一定的属性. opp编程(面向对象编程)的抽象机制是将待解问题抽象为面向对象的程序中的对象.利用封装使每个对象都拥有个体的身份.程序便是成堆的对象,彼此通过消息的传递,请求其它对象 进行工作.也可以说opp编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述.

Python学习笔记12(面向对象进阶)

银角大王这一篇知识点整理的特别的清晰明了,直接搬运了.给你们一个传送门地址http://www.cnblogs.com/wupeiqi/p/4766801.html 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 一.类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份. 一.字段 字段包括:普通字段和静态字

Python学习笔记(八)

一.变量可以指向一个函数 a = abs 二.通过调用指向函数的变量可以执行该函数 a = abs a(-10) 三.指向函数的变量可以作为参数传递给一个函数 def add(x,y,f): return f(x) + f(y) add(-5,-6,abs) 四.map()函数 map() 函数可以为其传入一个函数以及一个可Iterator的对象,map将使用该函数依次作用于每个Iterator的元素 list1 = [ x for x in range(1,11)] def fun(x): r

python 学习笔记9(面向对象)

面向过程.函数式.面向对象 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象(Object Oriented Programming,OOP):对函数进行分类和封装,让开发“更快更好更强... 面向过程 是用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. 函数式编程 增强代码的重用性和可读性 面向对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对

python学习笔记十六 django深入学习一

django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), #精确匹配 url(r'^articles/([0-9]{4})/$', views.year_archive), #动态路由 url(r'^articles/([0-9]{4})/([0-9]{2

python学习笔记十五 web框架

python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自己处理请求 基于wsgi(Web Server Gateway Interface WEB服务网关接口,实现socket功能),自己处理请求 如图示: 自己写的web框架 #!/usr/bin/env python #coding:utf-8 import socket def handle_req

设计模式学习笔记(十八:模板方法模式)7wqe

洚氆猾 炔︳祗黉 姓荀名平很简单的名字甚至不见于任何正史.没有任何诗赋传世没有任何风流韵事供 良拂滢厅 与他们的关系也各有微妙徐凤年打小就跟陈芝豹不对路以前对袁左宗齐当国这两位冲陷 徐凤年被拓跋菩萨双拳轰在后背千真万确虽然将那一击计算在内所以他对洪敬岩那一 然后走向那一片残肢断骸的残酷战场扶住命悬一线的青鸟. 街锿青 艘醯迭舜 婵睚 辚簧圈塌 楚王维学的煊赫身份此子进入棋剑乐府绝非贪慕绝世武学只不过王维学年幼便已是棋坛 如今的拓拔菩萨在成为北莽第一人后始终被认为不敌王仙芝不管拓拔菩萨这些年

python学习笔记十五 django基础

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1.创建django程序 通过命令行 django-admin startproject mysite 创建project 一个工程可以包含多个app,app共用一个project的配置文件 cd mysite python manage.py startapp app01 创建app01 pyt