基础知识回顾——面向对象编程

在进入面向对象编程之前,希望对python常见内建函数做个整理,参考来自官网

常见内建函数

chr(number) 返回ASCII码为给定数字的字符
ord(char) 返回给定单字符(长度为1的字符串或者Unicode字符串)的ASCII值
all(iterable) 如果所有iterable的元素均为真则返回True, 否则返回False
any(iterable) 如果有任一iterable的元素为真则返回True,否则返回False
callable(object) 检查对象是否可调用
dir([object]) 选择性地列出给定对象的(大多数)特性
help([object]) 调用内建的帮助系统,或者打印给定对象的帮助信息
reload(module) 重载入一个已经载入的模块并将其返回
repr(object) 返回表示对象的字符串,一般作为eval的参数使用
eval(string[, globals[, locals]]) 对包含表达式的字符串进行计算
input([prompt]) 等同于eval(raw_input(prompt)
raw_input([prompt]) 将用户输入的数据作为字符串返回,可选择使用给定的提示符prompt
str(object) 返回表示给定对象object的格式化好的字符串
type(object) 返回给定对象的类型

面向对象编程

面向对象是一种程序设计方法,相对面向过程而言,把函数进行分类和封装。


面向对象概念初识


概念


说明


例子



现实世界中的一些事物抽象封装。以关键字class开头,后接类名及冒号。


class  Person:

name = ‘Lucy’

def SetAge(self,age):

Self.age = age


对象


类定义后的一个实例,对象包括属性和方法。对象分为类对象,实例对象


类对象


类定义完成之后即产生了一个全局的类对象,可以通过类对象来访问类中的属性和方法。


Person 类对象


实例对象


实例对象是对类的实例化,可以实例化多个


p = Person() 实例对象


属性


形容对象是什么或者能干什么


类属性


类属性所有实例对象所共有的属性,在类外,可以通过类对象定义或修改,在类里面,只能在类方法中进行定义或修改。


name = ‘Lucy’  类属性

Person.country = ‘china’ 通过类对象定义


实例属性


某个实例对象的属性,当与类属性冲突时,实例属性屏蔽类属性。


p.country = ‘china’  通过实例对象定义


私有属性


以双下划线开头,不能在类的外部被直接访问


__name = ‘Lucy’


函数


完成特定功能的代码块,便于重用


def SetAge(age):

return age


方法


方法同函数功能一样,写在类中,同对象联用


def SetAge(self,age):

Self.age = age


类方法


含@classmethod修饰符且必须有cls参数的方法,可以通过实例对象和类对象访问


@classmethod

def SetAge(cls,age):

cls.age = age


实例方法


含self的方法,只能通过实例对象访问


def SetAge(self,age):

Self.age = age


静态方法


含@staticmethod修饰符的方法,只能通过类对象访问

 @staticmethod

def SetAge(age):

return  age

常见内置方法


类的内置方法


内置方法名


说明


__init__(self,...)


初始化对象,在创建新对象时调用


__del__(self)


释放对象,在对象被删除之前调用


__new__(cls,*args,**kwd)


实例的生成操作


__str__(self)


在使用print语句时被调用


__call__(self,*args)


把实例对象作为函数调用


__getattr__(s,name)


获取属性的值


__setattr__(s,name,value)


设置属性的值


__delattr__(s,name)


删除属性的值

时间: 2024-08-06 23:22:24

基础知识回顾——面向对象编程的相关文章

java基础知识回顾之面向对象

一 . 抽象类 什么是抽象类?很简单,就是用abstract关键字修饰,并允许包含未实现方法的类. 什么时候定义抽象类?在有些情况下,可能有些方法无法确定要怎么实现,这时就可以定义抽象类,无法实现的方法定义成抽象方法. 抽象类的特性: 1. 不能实例化,即不能创建对象,只能作为父类被继承. 2. 子类继承一个抽象类后,必须实现父类的抽象方法. 3. 抽象类中可以有抽象方法,也可以不包含抽象方法,但如果包含抽象方法,就必须定义成抽象类. public abstract class Shaoe{ p

Java基础知识回顾之七 ----- 总结篇

前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数据类型 基本数据类型主要有: byte.short.int.long.float.double.char.boolean 它们可以分为三类: 数值类型:byte.short.int.long.float.double 字符类型:char 布尔型:boolean 其中byte是8位,short是16位

JS基础知识回顾:引用类型(一)

在ECMAScript中引用类型是一种数据结构,用于将数据和功能组织在一起,而对象时引用类型的一个实例. 尽管ECMAScript从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构,所以虽然说引用类型与类看起来想死,但他们并不是相同的概念. 不过引用类型有的时候也可以被称为对象定义,因为他们描述的是一类对象所具有的属性和方法. 新对象是使用new操作符后跟一个构造函数来实现的,构造函数本身就是一个函数,只不过该函数时处于创建新对象的目的而定义的. ECMASc

java基础知识回顾之---java String final类普通方法

辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      *      * 1,获取:     * 1.1 获取字符串中字符的个数(长度).     *         int length();     * 1.2 取字符串中的某一个字符,其中的参数index指的是字符串中序数.字符串的序数从0开始到length()-1 .     *       

JS基础知识回顾:ECMAScript的语法(一)

任何语言的核心都必然会描述这门语言最基本的工作原理,而描述的内容通常都要涉及这门语言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念. ECMAScript中的一切变量.函数名.操作符都区分大小写. ECMAScript的标识符要符合下列规则:第一个字符必须是字母.下划线或美元符号:其他字符可以是字母.下划线.美元符号或数字. 标识符中的字母也可以包含扩展的ASCII或Unicode字母字符,但是并不推荐. 按照惯例,ECMAScript标识符采用驼峰大小写的格式来书写,尽管没

java基础知识回顾之javaIO类--File类

File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读,获取当前文件的路径名,判断指定文件是否存在,获得当前文件的列表,创建.删除文件目录等方法. /**     * 构造方法:File f = new File("file.txt");//file.txt 相对路径     *       File f1 = new File("c

JS基础知识回顾:ECMAScript的语法(二)

ECMAScript中有五种简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number.String ECMAScript还有一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的. ECMAScript不支持任何创建自定义类型的机制,而所有值最终都将是上述六种数据类型之一,由于ECMAScript的数据类型具有动态性,因此的确没有再定义其他数据类型的必要了. 监狱ECMAScript是松散类型的,因此需要有一种手段来检测给定变量的数据

java基础知识回顾之java Thread类学习(八)--java多线程通信等待唤醒机制经典应用(生产者消费者)

 *java多线程--等待唤醒机制:经典的体现"生产者和消费者模型 *对于此模型,应该明确以下几点: *1.生产者仅仅在仓库未满的时候生产,仓库满了则停止生产. *2.消费者仅仅在有产品的时候才能消费,仓空则等待. *3.当消费者发现仓储没有产品可消费的时候,会唤醒等待生产者生产. *4.生产者在生产出可以消费的产品的时候,应该通知等待的消费者去消费. 下面先介绍个简单的生产者消费者例子:本例只适用于两个线程,一个线程生产,一个线程负责消费. 生产一个资源,就得消费一个资源. 代码如下: pub

java基础知识回顾之java Thread类学习(七)--java多线程通信等待唤醒机制(wait和notify,notifyAll)

1.wait和notify,notifyAll: wait和notify,notifyAll是Object类方法,因为等待和唤醒必须是同一个锁,不可以对不同锁中的线程进行唤醒,而锁可以是任意对象,所以可以被任意对象调用的方法,定义在Object基类中. wait()方法:对此对象调用wait方法导致本线程放弃对象锁,让线程处于冻结状态,进入等待线程的线程池当中.wait是指已经进入同步锁的线程,让自己暂时让出同步锁,以便使其他正在等待此锁的线程可以进入同步锁并运行,只有其它线程调用notify方