python的类是什么
我们该如何给python的类来下一个通俗易懂的定义呢?据个人经验和总结,认为python的类是一个容器,封装了那些用来描述现实生活中的事物(对象)及其各种各样的特征属性、行为方式的python代码封装起来。
python类的基本结构
class ClassName (ParentClassList):
pass
用python类创建一个精通算数并展示肖像的人:
上一节中,我们在打怪的游戏当中创建了一个NPC的类,并默认继承object类,这节当中,我们来设计一个更能展示的类特性的类程序,同样默认继承object类。代码如下:
from PIL import Image #导入用于打开图片的库
import time
class Person():
id_address = '地球' #类变量
def __init__(self, name, ID, portraitpath): #类实例的初始化
self.name = name #实例变量
self.ID = ID
self.portrait = Image.open(portraitpath)
def arithmetic(self, a,b,c): #类实例方法
print('%s精通加减乘除的算术'%self.name)
time.sleep(1)
if b == '+':
print('%s + %s' %(a,c))
time.sleep(1)
print('=%s' %(a+c))
elif b == '-':
print('%s - %s' %(a,c))
time.sleep(1)
print('=%s' %(a-c))
elif b == '*':
print('%s x %s' %(a,c))
time.sleep(1)
print('=%s' %(a*c))
elif b == '/':
print('%s ÷ %s' %(a,c))
time.sleep(1)
print('=%s' %(a/c))
@classmethod #类方法,注意参数和类实例方法的参数的区别
def person_func(cls):
print('人类居住在%s' %cls.id_address)
@staticmethod #类的静态方法,注意参数
def plant_atrr():
print('植物可以光合作用,与人类不同!')
xiaopeng = Person('小彭','123456789','/path/pengyuyan.jpg') #类的实例化,其中的path可以用绝对路径
xiaohu = Person('小胡','213456789', '/path/huge.jpg')
print(xiaopeng.name)
print(xiaohu.name)
print(xiaopeng.id_address) #分别通过类的实例xiaopeng和xiaohu的来调用类变量id_address
print(xiaohu.id_address)
xiaopeng.portrait.show()
xiaopeng.arithmetic(1,'/',5)
xiaohu.arithmetic(1,'/',5)
Person.person_func() #调用
Person.plant_atrr()
————————————————————————————————————————
代码输出:
小彭
小胡
地球
地球
图片(计算机会利用操作系统默认的图片预览工具弹出图片,而不是在终端输出)
小彭精通加减乘除的算术
1 ÷ 5
=0.2
小胡精通加减乘除的算术
1 ÷ 5
=0.2
人类居住在地球
植物可以光合作用,与人类不同!
如上代码,其中涉及到了几个十分重要的名词,类变量、实例变量、初始化函数、类实例方法、类方法、静态方法,可以说是类的基本,下面链接中的技术博客,一一地进行了解析:
python的类,用类创建一个精通算术并能展示肖像的人
网友评论