python面向对象1

原创 2018年04月17日 15:11:27
过程到对象:面向过程代码过于复杂,且顺序无法修改,能能按逻辑顺序步步运行,可移植性差;面向对象则简化了程序,什么时候想用什么时候用,且便于移植,使得整个程序变得清晰明了

python中的实例与类相关操作:
1.实例方法:
   self 代指实例。出现self的都是实例,且self可以用其他字符替换
最常用的实例方法
 
class Feng():
    def __init__(self):
        self.name = 'fenghua'
feng = Feng()
print(feng.name)

2.静态方法(@staticmethod):
   不对任意实例类型进行操作,类对象以及实例(类名.静态方法名)都可以调用静态方法,相当于全局方法。
3.类方法(@classmethod):
   将类本身作为对象操作的方法(因为类方法是对类属性进行操作和修改的,语法一般为:cls.name等等)。参数cls代表类。
   类对象以及实例(类名.静态方法名)都可以调用类方法 。需要用修饰器@classmethod来标识其为类方法,对于类方法,第
   一个参数必须是类对象。
 
class Feng:
    name="fenghua"
    @classmethod
    def getName(cls):
        return cls.name
feng = Feng()
print(feng.getName())  # 实例对象调用类方法  
print(Feng.getName())  # 类对象调用类方法 
类方法修改类属性:
class Feng:
    name="fenghua"
    @classmethod
    def getName(cls):
        return cls.name
    @classmethod
    def setName(cls, set_name):
        cls.name = set_name
        return cls.name
feng = Feng()
print(feng.getName())  # 实例对象调用类方法  
print(Feng.getName())  # 类对象调用类方法  
Feng.setName('bobo')
print(feng.getName())  # 实例对象调用类方法  
print(Feng.getName())  # 类对象调用类方法  
feng.setName('fenglaoda')
print(feng.getName())  # 实例对象调用类方法  
print(Feng.getName())  # 类对象调用类方法  
实例方法类方法的区别:
  ①实例方法要先实例化一个对象,再调用实例化方法,类方法用类名.类方法就可以直接调用
  ②实例方法的参数self里面就是实例本身,类方法的参数cls里面就是类本身
  ③实例属性对实例方法可见,类方法没有对应属性
  ④类属性被类对象和实例对象共有
  ⑤实例对象a = People() a.name  类对象People.name
  ⑥实例属性只能被实例对象调用,类对象不能拥有(重点)
  ⑦实例属性可以放在构造方法中:__init__(self,实例属性)

实例方法的第一个参数是实例对象self,那么通过self引用的可能是类属性、也有可能是实例属性(这个需要具体分析),不过在存在相同名称的类属性和实例属性的情况下,实例属性优先级更高。

Python面向对象习题

Python面向对象的习题
  • bullpride
  • bullpride
  • 2016-07-25 12:54:19
  • 3708

Python面向对象之继承

Python 继承即一个派生类(derived class)继承基类(bass class)字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计,一个Cat类型的对象派生...
  • SeeTheWorld518
  • SeeTheWorld518
  • 2015-09-29 19:26:07
  • 840

python高级1:面向对象进阶

第一章 面向对象进阶 1.1. 元类 1.2. python是动态语言 1.3. __slots__ 1.4. 生成器 1.5. 迭代器 1.6. 闭包 1.7. 装饰器 1.1. 元类1. 类也...
  • laststom
  • laststom
  • 2017-12-03 22:40:22
  • 94

Python学习--面向对象的实例

下面的例子实现了学校成员类,这个类登记成员的姓名,并且统计学校的总人数。老师类继承学校成员类,创建对象的时候总人数加一,老师类登记老师的工资。学生类继承学校成员类,总人数也会加一,学生类登记学生的成绩...
  • lixiang0522
  • lixiang0522
  • 2012-05-31 17:11:34
  • 3370

Python面向对象示例代码

Python面向对象示例代码#encoding:utf-8'''example 1 class test: def __init__(self,year,**arg): sel...
  • fengshenyue
  • fengshenyue
  • 2017-01-23 11:52:42
  • 411

深入理解Python中的面向对象

博客核心内容: 面向过程与面向对象的对比 id、type和value的讲解 类和对象的概念 初始化构造函数__init__的作用 self关键字的使用 继承的概念 组合的概念 接口的概念 抽象类的概念...
  • a2011480169
  • a2011480169
  • 2017-06-12 06:42:41
  • 4508

python面向对象小练习

class Animal(object): def __init__(self,name,weight): self.name = name self.weight = weight de...
  • wangyaninglm
  • wangyaninglm
  • 2015-04-24 14:34:38
  • 1976

Python 面向对象的基本概念 与c++ 面向对象的基本概念有点区别

Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程。面向对象的最主要目的是提高程序的重复使用性。我们这么早...
  • lujiandong1
  • lujiandong1
  • 2015-05-20 19:21:54
  • 846

python面向对象例子

#!/usr/bin/python # -*- coding: UTF-8 -*- __author__ = 'Administrator' #面向对象 class Person: coun...
  • earbao
  • earbao
  • 2016-07-27 15:47:17
  • 579

Python基础-面向对象和面向过程编程区别

前言OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。哈哈哈,学Python、Java的人表示很开心。 面向过程的程序设计 把计算机程序视为一系列的命令集...
  • su749520
  • su749520
  • 2017-12-13 10:01:52
  • 502
收藏助手
不良信息举报
您举报文章:python面向对象1
举报原因:
原因补充:

(最多只允许输入30个字)