设为首页 加入收藏

TOP

python入门基础(13)--类、对象、全局函数,类内部调用(二)
2023-09-23 15:44:21 】 浏览:239
Tags:python 对象 全局函
打印出一句“**唱了一首《我的中国心》”这句话。

运行结果如下:

从上面可以看出,定义类的方法让类具有一定的能动性,为类的能力进行扩展。

在类外部调用该类的方法就可以完成相应的功能,或改变类的状态,或达到其他目的。
类中的方法定义和调用与面向过程的函数定义和调用的方式基本相同,但有以下区别:
1)方法的第一个参数必须是 self,而且不能省略:
2)方法的调用需要实例化类,并以实例名.方法名(参数列表)形式调用,如tom.sing()
3)整体进行一个单位的缩进,表示其属于类体中的内容。

我们重新建一个计算类Calc,如下代码:

class Calc:
    
    def calcadd(self,x,y):
        return x+y
    
    def calcreduce(self,x,y):
        return x-y
    
    def calcmultiply(self,x,y):
        return x*y
    
    def calcdeviate(self,x,y):
        return x/y

new_calc= Calc()
    
print("相加的结果是%s"%new_calc.calcadd(20, 50))
print("相乘的结果是%s"%new_calc.calcmultiply(23, 50))
print("相除的结果是%s"%new_calc.calcdeviate(30, 50))
print("相减的结果是%s"%new_calc.calcreduce(20, 50))

如上图这个类,没有特征属性,只有加减乘除四个运算。运行结果如下:

类中的方法既可以调用 本类中的方法,也可调用全局函数来完成任务。调用全局函数和面向过程中的调用方式一样,而调用类自身的方法使用如下形式:

self.方法名(参数列表)注:调用本类方法时,参数列表中不包含"self"。如下实例:

def coord_chng(x,y):        #定义一个全局函数,模拟坐标值变换
    return (abs(x),abs(y))  #将x,y 值求绝对值后返回

class Cat:                        #定义一个类Cat
    def __init__ (self,x=0,y=0):  #定义一个构造方法,
        self.x=x
        self.y=y
        self.disp_point()      #构造函数中调用类中的方法disp_point()
    
    def move(self,x,y):        #定义一个方法move()
        x,y = coord_chng(x,y)  #调用全局函数,坐标变换
        self.edit_point(x,y)   #调用类中的方法edit_point()
        self.disp_point()      #调用类中的方法disp_point()
    
    def edit_point(self,x,y):  #定义一个方法
        self.x += x
        self.y += y

    def disp_point(self):      #定义一个方法
        print("当前位置:(%d,%d)"% (self.x,self.y))

cat_a= Cat()      #实例化Cat()类
cat_a.move(2,4)   #调用cat_a实例的方法move()
cat_a.move(-9,6)  #调用cat_a实例的方法move()
cat_a.move(12,-16)#调用cat_a实例的方法move()

如下图所示,coord_chng()是全局函数,主要作用是将输入的x,y转换成绝对值后输出;edit_point()和disp_point()是类自身的两个方法,被另一个方法move()调用。

cat_a=Cat() 即创建一个cat_a的对象,属于Cat类,即初始化x=0,y=0;在def __init__()中调用disp_point()方法,显示位置为0,0

cat_a,move(2,4) 即调用上图程序,先将2,4绝对值,再通过edit_point()方法,在原基础上加上x,y值,得到最新的x,y,再调用disp_point()方法打印出来位置。

最后两行一样,先求绝对值,再相加,最后显示位置。

代码运行如下:

 

 

 

 
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【matplotlib基础】--样式表 下一篇Python 安装与快速入门

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目