【无标题】

 

面向对象技术简介

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

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

数据成员: 类变量或者实例变量, 用于处理类及其实例对象的相关的数据。

方法重写: 如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

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

实例变量: 在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

继承: 即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系。

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

方法: 类中定义的函数。

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

创建类

使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾。

类的帮助信息可以通过ClassName.__doc__查看。

 

class_suite 由类成员,方法,数据属性组成。

 

# 实例 1

class Employee: '所有员工的基类'

    empCount = 0 

    def __init__(self, name, salary):

        self.name = name 

        self.salary = salary 

        Employee.empCount += 1

    def displayCount(self):

        print("Total Employee %d" % Employee.empCount)

    def displayEmployee(self): 

        print("Name : ", self.name, ", Salary: ", self.salary)

1

2

3

4

5

6

7

8

9

10

11

empCount 变量是一个类变量,它的值将在这个类的所有实例之间共享。你可以在内部类或外部类使用 Employee.empCount 访问。

第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法

self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。

self代表类的实例,而非类

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

 

# 实例 2

class Test:

    def prt(self):

        print(self)

        print(self.__class__)

t = Test()

t.prt()

1

2

3

4

5

6

7

创建实例对象

实例化类其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。

 

以下使用类的名称 Employee 来实例化,并通过 init 方法接收参数。

 

# 实例 3

"创建 Employee 类的第一个对象"

emp1 = Employee("Zara", 2000)

"创建 Employee 类的第二个对象"

emp2 = Employee("Manni", 5000)

1

2

3

4

5

访问属性

使用如下类的名称访问类变量:

 

# 实例 4

emp1.displayEmployee()

emp2.displayEmployee()

print("Total Employee %d" % Employee.empCount)

1

2

3

4

完整实例:

 

# 实例 4

class Employee: '所有员工的基类' 

    empCount = 0 

    def __init__(self, name, salary):

        self.name = name 

        self.salary = salary 

        Employee.empCount += 1 

    def displayCount(self):

        print("Total Employee %d" % Employee.empCount)

    def displayEmployee(self): 

        print("Name : ", self.name, ", Salary: ", self.salary

"创建 Employee 类的第一个对象"

emp1 = Employee("Zara", 2000) 

"创建 Employee 类的第二个对象" 

emp2 = Employee("Manni", 5000) 

emp1.displayEmployee() 

emp2.displayEmployee() 

print("Total Employee %d" % Employee.empCount)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

你可以添加,删除,修改类的属性,如下所示:

 

emp1.age = 7 # 添加一个 'age' 属性

emp1.age = 8 # 修改 'age' 属性

del emp1.age # 删除 'age' 属性

1

2

3

你也可以使用以下函数的方式来访问属性:

 

getattr(obj, name[, default]) : 访问对象的属性。

hasattr(obj,name) : 检查是否存在一个属性。

setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性。

delattr(obj, name) : 删除属性。

结束语

今天学习的是Python面向对象学会了吗。 今天学习内容总结一下:

 

面向对象技术简介

创建类

创建实例对象

访问属性

python学习开发语言

来自专栏

Python

 北岛末巷 91篇文章 84人订阅

 

发布于2022-11-20

著作权归作者所有

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值