用python类创建个精通算术能展示肖像的人,深度理解python类

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的类,用类创建一个精通算术并能展示肖像的人icon-default.png?t=M5H6https://www.x1y1z1.com/python/pyclass.html

你可能感兴趣的:(python,开发语言,青少年编程)