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的更多相关文章

  1. python基础——面向对象编程

    python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  2. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  3. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

  4. python基础——面向对象的程序设计

    python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

  5. Python 基础 面向对象之二 三大特性

    Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...

  6. python基础--面向对象基础(类与对象、对象之间的交互和组合、面向对象的命名空间、面向对象的三大特性等)

    python基础--面向对象 (1)面向过程VS面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. ...

  7. Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础

    本节内容: 1.     面向对象高级语法部分 1.1   静态方法.类方法.属性方法 1.2   类的特殊方法 1.3   反射 2.     异常处理 3.     Socket开发基础 1.   ...

  8. python基础-面向对象编程

    一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...

  9. 第八章:Python基础の面向对象(二)

    本課主題 面向对象的多态 面向对象的成员 成员修饰符 特殊成员 面向对象其他应用 异常处理 设计模式与单例模式 面向对象的多态 指定参数类型只是多态的一种表现 另外一种是允许自己类型和自己的子类型(典 ...

  10. python基础-面向对象(装饰器)

    属性:   @property   @method_name.setter   @method_name.deleter   三个标签都是放在方法的上面来使用,且方法名要和后续使用的   变量名字相一 ...

随机推荐

  1. MySQL 记录中包含换行符

    换行符: \r\n \r CHAR(10) 处理方法: REPLACE(str,from_str,to_str); 如:REPLACE('aaa\nbbb','\n','');

  2. Mysql下Union注入Bypass安全狗过程

    文章转载于:http://www.0aa.me/index.php/archives/95/ 一次众测发现个注入,然后有安全狗就顺带看了下安全狗. 先fuzz看看安全狗拦截什么关键词union sel ...

  3. Error: EACCES: permission denied, symlink

    环境说明 ganiks@ganiks-ubuntu-trusty-64:/ganiks/parse-server$ npm -v 6.5.0 ganiks@ganiks-ubuntu-trusty-6 ...

  4. 完整的jdbc查询结果集编码

    public static ArrayList<HashMap<String,Object>> query(Connection conn,String sql, Object ...

  5. 集群下使用redis统一session处理

    pom依赖(快照版): <dependency> <groupId>org.springframework.session</groupId> <artifa ...

  6. HTML标签及属性大全

    HTML标签及属性大全 基本结构标签: <HTML>,表示该文件为HTML文件 <HEAD>,包含文件的标题,使用的脚本,样式定义等 <TITLE>---</ ...

  7. GridView解决同一行item的高度不一样,如何同一行统一高度问题?

    问题描述: 有时我们使用GridView会面对类似这种情况. 这是是不是一脸愣逼,我们理想情况是把他变成这样 保证同一行的item都是一样高这样就美观许多了 注意:上面的两张图片是盗图,用来作为效果观 ...

  8. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败解决方案

    第一种方法测试过可用:地址:http://download.csdn.net/detail/itjjfamily/8853509 下面是第二种: .NET导出Excel遇到的80070005错误的解决 ...

  9. LeetCode 第 231 题 (Power of Two)

    LeetCode 第 231 题 (Power of Two) Given an integer, write a function to determine if it is a power of ...

  10. Eclipse中JSP页面默认编码修改

    jsp页面默认编码为ISO-8859-1 要修改为UTF-8,步骤如下 选择windon-->preference 在弹出框操作 以后新建jsp页面编码为UTF-8编码