面向对象

定义

class Student(被继承类):
def __init__(self, xx, xxx):
#构造函数

类方法的第一个参数一定是self。除此之外和普通函数并没有区别。同样可以使用_xx __xxx来定义private变量。

class Animal(object):
def run(self):
pass class Cat(Animal):
def run(self):
pass class me(object):
def run(self):
pass def f(Animal):
Animal.run()

Animal,Cat,Me的对象都可以传进f函数,这是python的鸭子类型。一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。不要求严格的继承关系。

判断类型

type()    # 返回类类型
isinstance(对象, 类类型) # 返回True or False,可以判断继承的类

获得对象属性和方法

dir() #返回一个对象属性和方法的字符串列表
hasatrr(obj, 'atrribute') #判断是否有属性或方法
getatrr(obj, 'atrribute') # 等于 obj.atrribute

动态绑定属性

class Student(Object):
pass
def age(self, age):
self.age = age from types import MethodType
s = Student()
s.age = MethodType(age, s) # 给对象绑定方法 Student.age = age # 给类绑定方法

slot限制允许绑定的属性:

class Student(Object):
__slots__ = ('name', 'age') #只允许绑定这两个属性

python学习笔记(4):面向对象的更多相关文章

  1. python 学习笔记7 面向对象编程

    一.概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." ...

  2. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

  3. python学习笔记_week6_面向对象

    面向对象 介绍(特性(class.object--->封装.继承,多态)).--->世界万物,皆可分类:世界万物,皆可对象 只要是对象,就肯定属于某种品类:只要是对象,就肯定有属性 你是上 ...

  4. Python学习笔记016——面向对象

    面向对象是指用类来描述一个对象(实例),用类来建立实例与实例的关联关系 对象 : object     实例 : instance 1 类 1.1 什么是类 类是用来描述对象的工具,用类可以创建一个或 ...

  5. python学习笔记(七):面向对象编程、类

    一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一 ...

  6. python学习笔记(6)--面向对象学习

    本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.   引言 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做(人狗大战)的游戏,你就思 ...

  7. python学习笔记(10):面向对象

    一.类和实例 1.类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 2.对象:通过类定义的数据结构实例.对象包括两个数据成员( ...

  8. python学习笔记(7): 面向对象

    class Foo: #类中的函数 def bar(self): #功能阐述 print('Bar') pass def hello(self,name): print('i am %s' %name ...

  9. Python学习笔记之面向对象

    下面是初步总结的Python的面向对象的参数定义,后面会逐渐完善面向对象的相关知识.

  10. Python学习笔记捌——面向对象高级编程

    __slots__特殊变量的使用: 由于Python是动态语言,允许先编写类,然后在创建实例的时候添加属性或者方法:而__slots__特殊变量就是,限制往类里添加属性的: 在创建类的时候,使用__s ...

随机推荐

  1. 案例:记录一则强制开库遭遇ORA-16433的处理过程

    客户的一套开发环境,大概了解到的背景是清理空间时redo被运维人员当作log误删除,一线同事先接手处理,过程中遇到问题升级到我这里继续分析. 接手后,数据库处于mount状态,之前恢复过程中已经做过r ...

  2. 7.函数的使用--《Python编程:从入门到实践》

    7.1 python 中函数的定义   python 中函数使用 def 定义: def greet_user(): 7.2 传参的传递   普通实参的传毒,可以与 C++ 相同,即按顺序传递. 7. ...

  3. electron nodejs idea 的 Terminal 默认是操作系统的 cmd.exe,他默认是GBK

    问题1:idea 的 Terminal 默认是操作系统的 cmd.exe,他默认是GBK,尽量不要通过手段更改了,没意义.若要在控制台输出中文,最简单的方法是运行:chcp 65001 &&a ...

  4. 测试DHCP服务器

    一:前期准备 1.准备三台虚拟机,不要配ip. 都改成仅主机模式,这样它们和DHCP才会相连 2.进入有DHCP服务器的虚拟机,更改虚拟网络编辑器 (编辑→虚拟网络编辑器(N)) 不勾选使用本地DHC ...

  5. CF383C Propagating tree

    题目链接 题目 见链接. 题解 知识点:DFS序,树状数组. 我们需要对子树的不同奇偶层加减,用dfn序可以解决子树问题,但是并不能直接分奇偶. 一种比较麻烦的思路是,将dfn序分成两个序列,一个是偶 ...

  6. SATA学习笔记——Transport Layer 概述

    一.故事前传 在之前的文章中,我们有提到SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层(Link Layer)以及物理层(Physi ...

  7. 对称加密算法汇总:AES DES 3DES SM4 java 实现入门

    密码的世界 如果你是黑帮老大,平时和手下沟通,如何保证自己的信息安全呢? 在神探夏洛克的第一季中,就讲述了一个如何侦破黑帮的加密交流的故事. 这种密码利用的是密码字典. 密码本身可以是一本书,比如常见 ...

  8. 从零开始手写 mybatis (三)jdbc pool 从零实现数据库连接池

    前景回顾 第一节 从零开始手写 mybatis(一)MVP 版本 中我们实现了一个最基本的可以运行的 mybatis. 第二节 从零开始手写 mybatis(二)mybatis interceptor ...

  9. 基于keras的双层LSTM网络和双向LSTM网络

    1 前言 基于keras的双层LSTM网络和双向LSTM网络中,都会用到 LSTM层,主要参数如下: LSTM(units,input_shape,return_sequences=False) un ...

  10. Js中的堆栈

    Js中的堆栈 堆heap是动态分配的内存,大小不定也不会自动释放,栈stack为自动分配的内存空间,在代码执行过程中自动释放. 栈区 在栈内存中提供一个供Js代码执行的环境,关于作用域以及函数的调用都 ...