1、如何创建类
class 类名:
pass

class bar:
pass

2、创建方法
构造方法,__init__(self,arg)
obj = 类('a1')
普通方法
obj = 类(‘xxx’)
obj.普通方法名()

class bar:
#构造方法
def __init__(self,n):
self.name = n
#普通方法
def foo(self):
print(self.name)
#生成一个叫obj对象
obj=bar('noube')
#obj对象调用类里面人方法
obj.foo() #执行结果
noube

3、面向对象三大特性之一:封装

class Bar:
def __init__(self, n,a):
  self.name = n
  self.age = a
  self.xue = 'o'

b1 = Bar('alex', 123)

b2 = Bar('eric', 456)

4、适用场景:
如果多个函数中有一些相同参数时,转换成面向对象

class DataBaseHelper:

def __init__(self, ip, port, username, pwd):
  self.ip = ip
  self.port = port
  self.username = username
  self.pwd = pwd

def add(self,content):
  # 利用self中封装的用户名、密码等 链接数据
  print('content')
  # 关闭数据链接

def delete(self,content):
  # 利用self中封装的用户名、密码等 链接数据
  print('content')
  # 关闭数据链接

def update(self,content):
  # 利用self中封装的用户名、密码等 链接数据
  print('content')
  # 关闭数据链接

def get(self,content):
  # 利用self中封装的用户名、密码等 链接数据
  print('content')
  # 关闭数据链接

s1 = DataBaseHelper('1.1.1.1',3306, 'alex', 'sb')

封装

5、面向对象三大特性之二:继承

1、继承

class 父类:#基类
pass

class 子类(父类): #派生类(基类)
pass

2、重写

防止执行父类中的方法

3、self永远是执行该方法的调用者

4、方法中调用方法

  super(子类, self).父类中的方法(...)
  父类名.父类中的方法(self,...)

继承

5、Python中支持多继承

a. 左侧优先
b. 一条道走到黑
c. 同一个根时,根最后执行

6、面向对象三大特性之三:多态
====> python   原生多态

# Java
string v = 'alex'

def func(string arg):
print(arg)

func('alex')
func(123)

# Python
v = 'alex'

def func(arg):
print(arg)

func(1)
func('alex')

==================================================================

练习:

class Person:

def __init__(self,n,a,g,f):

self.name = n
self.age =a
self.gender =g
self.fight = f

role_list = []

y_n = input('是否创建角色?')
if y_n == 'y':
name = input('请输入名称:')
age = input('请输入名称:')
...
role_list.append(Person(....))

# role_list,1,2

========================= 面向对象中级 ==============================

class Foo:

def __init__(self, name):
# 普通字段
self.name = name

# 普通方法
def show(self):
print(self.name)

obj = Foo('alex')
obj.name
obj.show()

类成员:
# 字段
- 普通字段,保存在对象中,执行只能通过对象访问
- 静态字段,保存在类中, 执行 可以通过对象访问 也可以通过类访问

# 方法
- 普通方法,保存在类中,由对象来调用,self=》对象
- 静态方法,保存在类中,由类直接调用
- 类方法,保存在类中,由类直接调用,cls=》当前类

######## 应用场景:
如果对象中需要保存一些值,执行某功能时,需要使用对象中的值 -> 普通方法
不需要任何对象中的值,静态方法

# 属性,特性
- 不伦不类

中国的所有省份,用面向对象知识表示?

class Province:
# 静态字段,属于类
country = '中国'

def __init__(self, name):
# 普通字段,属于对象
self.name = name

henan = Province('河南')
henan.name
henan.name = "河南南"

#hebei = Province('河北')

# Province.country

普通字段,静态字段
普通方法,静态方法,类方法

练习

输入页码,分页显示内容

分页显示

python 面向对象-笔记的更多相关文章

  1. Python 面向对象笔记

    Python 面向对象课程笔记 前言 Python 面向对象 正文 基本概念 什么是对象: 万物皆对象 对象是具体物体: 拥有属性 拥有行为 封装零散为整体 OOP(Object Oriented P ...

  2. python面向对象笔记

    一.封装(属性/私有方法/公有方法/静态方法/构造函数...) # 定义一个类 class Animal: # 私有成员(用_开头的约定为私有成员 - 注:仅仅是君子协定) _age = 0 # 构造 ...

  3. python学习笔记六 初识面向对象上(基础篇)

    python面向对象   面向对象编程(Object-Oriented Programming )介绍   对于编程语言的初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都知道OOP的三大特性 ...

  4. python学习笔记15(面向对象编程)

    虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程. 一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界 ...

  5. [Python学习笔记][第六章Python面向对象程序设计]

    1月29日学习内容 Python面向对象程序设计 类的定义与使用 类定义语法 使用class关键词 class Car: def infor(self): print("This is ca ...

  6. Python学习笔记【第十一篇】:Python面向对象高级

    isinstance(obj,cls)和issubclass(sub,super) class Person(object): def __init__(self, name, age, sex, n ...

  7. [Python]面向对象近期笔记-super

    Python面向对象高级 直接调用父类方法 class A: def __init__(self): print("hello") class B(A): def __init__ ...

  8. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  9. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

随机推荐

  1. Modelsim-altera 仿真 顶层原理图的解决办法

    解决办法:首先需要将.bdf原理图文件转换为Verilog HDL等第三方EDA工具所支持的标准描述文件.在Quartus下,保持*.bdf为活动窗口状态,运行[File]/[Create/Updat ...

  2. 开发android App干坏事(二)-wifi控制

    本来今天打算换个话题的,鉴于昨天android篇反响还不错,最近也是在做这方面的东西,今天聊聊一个新的android的发现-wifi的控制(好吧,其实也不能说是坏事,只是觉得wifi安全还是要引起警示 ...

  3. JS-安全检测JavaScript基本数据类型和内置对象的方法

    前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议 ...

  4. Spring整合log4j

    log4j2.xml放在类加载路径下,类加载路径就是WEB-INF文件夹下的classses文件,因为运行时,src包里的java类会被编译成.class盘文件,放在WEB-INF文件夹下的class ...

  5. appstore不能登陆

    Happened same with me. This is happening because the App Store is looking for a working connection o ...

  6. cursor 鼠标样式——属性

    取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-res ...

  7. hibernate框架之-查询结果集返回类型

    Hibernate支持HQL和SQL的查询,返回结果支持POJO类型或字段/数组的形式. 开发中用Hibernate进行数据库查询,用的是SQL.原来需要查询一个表的几乎所有字段,所以我使用了addE ...

  8. a different object with the same identifier value was already associated with the session:错误;

    当出现a different object with the same identifier value was already associated with thesession时,一般是因为在h ...

  9. 自动获取MyEcilipse注册名和注册码的方法

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //在MyEc ...

  10. js中各种事件的兼容性

    1给元素绑定一个事件 ie8attachEvent(on+"事件",event); 高级浏览器 addEventListener("事件",event,fals ...