Python:类和实例

本文介绍了Python中的类和实例的概念,包括类的属性和方法的定义,私有属性与方法的使用,以及如何创建和访问实例。通过一个矩形类的例子,展示了如何定义构造方法、访问和调用方法,以及实例无法直接访问私有属性和方法的特性。
摘要由CSDN通过智能技术生成

跟Java和C++类似,Python也是一门面向对象的语言,接下来将介绍Python类和类的实例。

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

 
  1. class ClassName:
  2. 类的属性定义
  3. 类的方法

Python

类的属性

一般在类内部可以定义类的属性,如Person类,通常会定义姓名name,年龄age等基础属性。定义方式与定义变量相同:var = ""
将属性名以双下划线开头可将属性定义为私有属性,如__privateattr = 0,表示其只能在类内部访问以self.的方式访问,类的实例(实例)无法访问。

类的方法

在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数self, 且为第一个参数,self代表的是类的实例。

 
  1. def function(self):
  2. 方法体

Python

与私有属性同理,将方法名以双下划线开头可将方法定义为私有方法,如def __func(self):,表示表示其只能在类内部访问以self.的方式访问,类的实例(实例)无法访问。
一般创建实例的同时需要初始化实例,因此一般都会为类定义一个构造方法名为__init__(),同样也是第一个参数必须为self,在创建类的实例时,会自动调用该构造方法。
如:

 
  1. def __init__(self,name):
  2. self.name = name

Python

类的实例

Python创建类的实例语法格式为:

 
  1. object = ClassName(argu1,argu2,...)

Python


下面以定义矩形类为例,来介绍类的使用。

 
  1. class Rectangle :
  2. #定义类的属性
  3. width = 0
  4. height = 0
  5. #定义类的私有属性
  6. __color = ""
  7. #定义构造函数
  8. def __init__(self,width,height,color):
  9. self.width = width
  10. self.height = height
  11. self.__color = color
  12. #定义类的私有方法。获取矩形的面积
  13. def __getArea(self):
  14. return self.width * self.height
  15. #定义类的方法。打印此矩阵的长宽面积
  16. #类内部可调用类的私有属性和私有方法
  17. def printme(self):
  18. print("width = %d,height = %d,area = %d,color = %s" % (self.width,self.height,self.__getArea(),self.__color))
  19.  
  20. #创建类的实例,自动调用__init__()构造方法
  21. R = Rectangle(3,4,"blue")
  22.  
  23. #访问实例的属性
  24. print("width =",R.width)
  25. #访问实例的方法
  26. R.printme()
  27.  
  28. #访问实例的私有属性和私有方法。
  29. #这里会报错,因为实例无法访问类的私有属性和私有方法
  30. print("color = %s, Area = %d " % (R.__color,R.__getArea()))

Python

将上述代码写入Rectangle.py文件中,利用命令python3.5 Rectangle.py执行代码,输出结果为:

width = 3
width = 3,height = 4,area = 12,color = blue
Traceback (most recent call last):
  File "Rectangle.py", line 28, in <module>
    print("color = %s, Area = %d " % (R.__color,R.__getArea()))
AttributeError: 'Rectangle' object has no attribute '__color'

因为__color__getArea()是私有属性和私有方法,所以类的实例无法访问,只有类内部能访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值