#coding: utf-8
class Bubble(object): # 首先定义一个类,如果没有继承的父类,则括号里为object即可
def __init__(self, *numbers): # __init__方法,在调用类的时候首先会调用它,它可以说明类的属性,也就是给这个类定义用什么样的参数。*numbers说明numbers是一个tuple,为动态个数的参数
self.numbers = numbers # 将numbers变量(init方法的形参传递给类中,变成类中的全局变量)
self.n = len(self.numbers) # 定义另外一个变量n(前面的self指的就是"本个实例",类似java中的this)
def bubble(self): # 在类中定义一个方法,这个方法使用的是本个实例,所以括号里有self
num = list(self.numbers) # 注意传递的参数是一个tuple,其中的元素是不可以更改的,所以我们把它转化为list形式
for j in range(1,self.n): # 这里是冒泡排序算法,只要记住range(1,n) range(n-j)这两个循环标志即可
for i in range(self.n-j):
if num[i] > num[i+1]:
num[i], num[i+1] = num[i+1], num[i]
return num # 在bubble函数中返回num
#coding: utf-8
from bubble_sort_class import Bubble # 首先从指定模块中调用指定类
z = Bubble(5, 4, 3, 2, 1) # z是Bubble类的一个实例,这个实例的参数是5,4,3,2,1
result = z.bubble() # 调用Bubble实例的bubble函数,并且复制到result
print(result)