Python基础-面向对象1
class Bar:
def fansik(self, name, age):
print(name, age) obj = Bar()
print(obj.fansik('fanjinbao', 19))
一、定义
函数:
def + 函数名(参数) 面向对象:
class => 名字叫Bar的类
def => 名字叫fansik的方法
#### self
二、执行
函数:
函数名()
面向对象:
obj = Bar() # 创建中间人(对象、实例)
obj.fansik 三、面向对象的封装实例
class Person():
def __init__(self, name, age, blood='O'):
self.name = name
self.age = age
self.blood = blood
def outinfo(self):
print('姓名:%s\n年龄:%s\nblood type:%s' % (self.name, self.age, self.blood))
fansik = Person('fansik', 89)
fansik.outinfo()
四、面向对象的继承实例
class Father():
def ff1(self):
print('fangfa1') def ff2(self):
print('fangfa2') def ff3(self):
print('fangfa3') class Son(Father): def ff4(self):
print('fangfa4') fansik = Son()
fansik.ff1()
fansik.ff2()
fansik.ff3()
fansik.ff4()
五、重写父类方法
class Father():
def ff1(self):
print('fangfa1') def ff2(self):
print('fangfa2') def ff3(self):
print('fangfa3') class Son(Father):
# 重写父类方法
def ff3(self):
# 引入父类的方法
# super(Son, self).ff3()
# 或者使用这种方式
# Father.ff3(self)
print('fangfa4') fansik = Son()
fansik.ff1()
fansik.ff2()
fansik.ff3()
六、Python中支持多继承
a、左侧有限
b、一条道走到黑
c、同一个根是,根最后执行
class BaseRequest:
pass class RequestHandler(BaseRequest):
def serve_forever(self):
print('RequestHandler.serve_forever')
self.process_request()
def process_request(self):
print('RequestHandler.prcess_request') class Minx:
def process_request(self):
print('minx.process_request') class Son(Minx, RequestHandler):
pass obj = Son()
obj.serve_forever()
执行结果:
RequestHandler.serve_forever
minx.process_request
说明:serve_forever()中的self.process_request()执行的是Son的process_request()所以输出是minx.process_request 类成员:
字段
- 普通字段,保存在对象中,执行职能通过对象访问
- 静态字段,保存在类中,执行可以通过对象访问,也可以通过类访问
方法
- 普通方法,保存在类中,由对象来调用,self --> 对象
- 静态方法,保存在勒种,由类直接调用
- 类方法,保存在勒种,有类直接调用,cls --> 当前类
应用场景:
如果对象中需要保存一些值,执行某功能时,需要使用对象中的值---->普通方法
不需要任何对象值,
class Fansik:
# 静态字段
country = '中国'
# 构造方法
def __init__(self, name):
# 普通字段
self.name = name # 普通方法
def common_method(self, name, age):
print(name, age) # 静态方法
@staticmethod
def static_method(x, y):
print(x, y) # 类方法
@classmethod
def class_method(cls):
print(cls)
print('class_method') fan = Fansik('fanjinbao')
print(Fansik.country)
print(fan.country)
Fansik.static_method(1, 2)
fan.static_method(1, 2)
fan.common_method(1, 2)
Fansik.class_method()
分页的简单实现:
class Pagenation:
def __init__(self, current_page):
try:
p = int(current_page)
except Exception as e:
p = 1
self.page = p
@property
def start(self):
val = (self.page - 1) * 10
return val
@property
def end(self):
val = self.page * 10
return val
li = [x for x in range(1000)]
while True:
page = int(input('要查看的页码:'))
obj = Pagenation(page)
print(li[obj.start:obj.end])
Python基础-面向对象1的更多相关文章
- python基础——面向对象编程
python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
- python基础——面向对象进阶
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...
- python基础——面向对象的程序设计
python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...
- Python 基础 面向对象之二 三大特性
Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...
- python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)
python基础--面向对象 (1)面向过程VS面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. ...
- Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础
本节内容: 1. 面向对象高级语法部分 1.1 静态方法.类方法.属性方法 1.2 类的特殊方法 1.3 反射 2. 异常处理 3. Socket开发基础 1. ...
- python基础-面向对象编程
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...
- 第八章:Python基础の面向对象(二)
本課主題 面向对象的多态 面向对象的成员 成员修饰符 特殊成员 面向对象其他应用 异常处理 设计模式与单例模式 面向对象的多态 指定参数类型只是多态的一种表现 另外一种是允许自己类型和自己的子类型(典 ...
- python基础-面向对象(装饰器)
属性: @property @method_name.setter @method_name.deleter 三个标签都是放在方法的上面来使用,且方法名要和后续使用的 变量名字相一 ...
随机推荐
- Jquery学习笔记(3)--注册验证
嗯哼,验证用户名,密码,重复密码,手机号,邮箱.提交时全部进行验证,通过才跳转. <!DOCTYPE html> <html lang="en"> < ...
- Django1.6 +wsgi 部署到Apache2 的步骤。
网上很多教程都是关于1.6之前的版本,很多都不适用,经历告诉我们最靠谱的还是官方文档. 一个Demo例子: 以 python shell开发的方式部署没有问题,但当独立部署到Apache2的过程非常艰 ...
- Linux 设备驱动的固件载入
作为一个驱动作者, 你可能发现你面对一个设备必须在它能支持工作前下载固件到它里面. 硬件市场的很多地方的竞争是如此得强烈, 以至于甚至一点用作设备控制固件的 EEPROM 的成本制造商都不愿意花费. ...
- 使用Navicat连接阿里云服务器上的MySQL数据库
1.首先打开Navicat,文件>新建连接> 2,两张连接方法 1>常规中输入数据库的主机名,端口,用户名,密码 这种直接连就可以了 第2种方法: 常规中输入数据库的信息,主机名用l ...
- MySql—修改权限
MySQL 赋予用户权限命令的简单格式可概括为: grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant sele ...
- 在java语言中int 和 Integer 有什么区别
在java语言中int 和 Integer 有什么区别 解答:int是基本数据类型,Integer是int的包装类,属于引用类型
- 【BZOJ】3401: [Usaco2009 Mar]Look Up 仰望(单调栈)
http://www.lydsy.com/JudgeOnline/problem.php?id=3401 还能更裸一些吗.. 维护一个递减的单调栈 #include <cstdio> #i ...
- (转)Java锁、自旋锁、CAS机制
转自:http://www.jb51.net/article/55381.htm 转自:http://blog.csdn.net/aesop_wubo/article/details/7537278 ...
- C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西付给另一个类对象,而不是付给引用地址)
from:https://blog.csdn.net/poxiaohai2011/article/details/27555951 //C# 中利用反射机制拷贝类的字段和属性(拷贝一个类对象的所有东西 ...
- shell学习之路(整理ing)
学习 shell脚本之前的基础知识 http://www.92csz.com/study/linux/12.htm SHELL 脚本 http://www.92csz.com/study/linux/ ...