python3 面向对象

Python在设计之初就是一门面向对象的语言。

一、技术简介

类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。

实例变量:定义在方法中的变量,只作用于当前实例的类。

方法:类中定义的函数。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

实例化:创建一个类的实例,类的具体对象。

二、类

class Calculator:
	price = 11	#类变量
	def add(self,x,y):	#求和的一个方法;x,y都是实例变量
		print (self.price)	#调用类变量
		print(x+y)
	def divide(self,x,y):	#求商的一个方法
		print (x/y)
	def minus(self,x,y):	#求差的一个方法
		print (x-y)
cal = Calculator()	#类的实例化,cal就是一个对象
cal.add(2,3)	#调用类中的add方法
cal.divide(6,3)
cal.minus(3,2)

输出结果为:
11
5
2.0
1

很多类倾向于将对象创建为有初始状态的。因此类可能会定义一个名为_init_()的特殊方法(构造函数)

class Complex:
    def __init__(self, realpart, imagpart):
        self.r = realpart
        self.i = imagpart
x = Complex(3.0, -4.5)
print(x.r, x.i)   #输出结果:3.0 -4.5

类的方法与普通的函数只有一个特别的区别,就是它们必须有一个额外的第一参数名称,惯例名称是self。其中self代表类的实例,而不是类。而且self不是关键字,可以随意起名字。

时间: 2024-07-30 12:09:38

python3 面向对象的相关文章

Python3 面向对象 高级编程

正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.  class Student(object): pass 然后,尝试给实例绑定一个属性: >>> s = Student() >>> s.name = 'Michael' # 动态给实例绑定一个属性 还可以尝试给实例绑定一个方法: >>> def set_age(self, age): # 定义一个函数作为实例方法 ...

Python3快速入门(六)——Python3面向对象

Python3快速入门(六)--Python3面向对象 一.面向对象技术简介 1.面向对象简介 面向对象编程(Object Oriented Programing,OOP)是一种编程思想,OOP把对象当成程序的一个基本单元,一个对象包含数据和操作数据的方法.面向对象编程的三大特性如下:A.封装,可以隐藏实现细节,使代码模块化.B.继承,可以通过扩展已存在的类来实现代码重用,避免重复编写相同的代码.C.多态,封装和继承的目的都是为了实现代码重用, 而多态是为了实现接口重用,使得类在继承和派生的时候

python3 面向对象之封装

封装是是面向的特点之一,同时这也是最重要的,对象可以没有继承,可以没有多态,但是不能没有封装,没有封装的对象就不是一个合格的对象. 封装内分为属性和方法,初次接触的同学可能不太习惯,但是,不要紧. 你可以把属性想象成一个人的名字,年龄等信息,通常都是名词性质的,而方法想象成是一种行为,比如一个人吃饭,睡觉等,通常是具有动词性质的. 而属性和方法又有公有和私有的划分,何为公有何为私有?看下面的代码. 1 #test2.py 2 3 class stu(): 4 def __init__(self,

python3 面向对象的创建及实例的属性

什么是对象: 对象是指现实中的物体或实体. 什么是面向对象: 把一切看成是对象(实例),用各种对象之间的关系来描述事务 对象的特征: 对象有很多属性(名词) 对象有很多自己的行为(动作) 什么是类: 拥有相同属性和行为的对象分为一组,即为一个类 类是用来描述对象的工具,用类可以创建此类的对象(实例) 对象的特征: 属性(实例变量) 年龄,姓名,性别 行为(实例方法) 学习,吃饭,睡觉 类的创建语法: class 类型[(继承列表)]              #[ ]内容可以省略 '类文档字符串

python3 面向对象编程--类的封装和继承

#python3import refrom urllib import requestimport os class PosterSpider(object):     def __init__(self, path='./'):           self.path = path #the entry of this process def getStart(self, url):           page = self.reqPage(url) page = page.decode('

Python3 面向对象程序设计(类)

一.自定义类 1.属性与方法 格式: class classname: def __init__(self,a,b): self.a=a   self.b=b def ... >一般都有一个__init__函数来定义属于这个类的参数,前后都被"__"包围的函数为特殊方法 :以"__"开头的变量只能读,不能写,相当于private数据. >如果重新实现str,repr等方法,值应使用表象形式: def __str__(self): return "

python3 面向对象、类、继承、组合、派生、接口、子类重用父类方法

对象是特征(变量)与技能(函数)的结合体而类是一系列对象共同的特征与技能的集合体 class teacher: lesson = "python" def __init__(self,name,color,age): # 只干初始化的活 self.name = name if not isinstance(name,str): raise TypeError self.color = color self.age = age def jineng(self): print('新技能')

python3 面向对象高级一些的

1 class Foo: 2 def __init__(self,name): 3 self.name=name 4 def __call__(self, *args, **kwargs): 5 print('====>') 6 f=Foo('egon') 7 f() 8 9 class Foo: 10 def __init__(self,name): 11 self.name=name 12 def __getitem__(self,item): 13 print('getitem',self

python3面向对象之飞机大战

写了俩天半,终于写完 了主要的框架.第一次写游戏,写完还有点小激动呢. 贴几张图: