<jupyter_start><jupyter_text>对象和类- 一个学生，一张桌子，一个圆都是对象- 对象是类的一个实例，你可以创建多个对象，创建类的一个实例过程被称为实例化，- 在Python中对象就是实例，而实例就是对象  定义类class ClassName:    do something    - class 类的表示与def 一样- 类名最好使用驼峰式- 在Python2中类是需要继承基类object的，在Python中默认继承，可写可不写- 可以将普通代码理解为皮肤，而函数可以理解为内衣，那么类可以理解为外套<jupyter_code>import pygame
 
pygame.mixer.init()
print("播放音乐1")
track = pygame.mixer.music.load("F:\CloudMusic\Kestutis K - Another Day.mp3")
pygame.mixer.music.play()
 
print("播放音乐2")
track1=pygame.mixer.music.load("F:\CloudMusic\Kestutis K - Another Day.mp3")
pygame.mixer.music.play()
 
print("播放音乐3")
track2=pygame.mixer.Sound("tkzc.wav")
track2.play()
import pygame:
pygame.mixer.init()
    class Music:
        def play():
            print('播放音乐')
            track1=pygame.mixer.music.load(F:\CloudMusic\Kestutis K - Another Day.mp3)
            pygame.mixer.music.play()
    
import time
import pygame
file=r'F:\CloudMusic\Kestutis K - Another Day.mp3'
pygame.mixer.init()
class Music:
    def play():
        print("播放音乐1")
        track = pygame.mixer.music.load(file)

        pygame.mixer.music.play()
        time.sleep(300)
        pygame.mixer.music.stop()
Music.play()<jupyter_output>播放音乐1<jupyter_text>定义一个标准类- __init__ 代表初始化，可以初始化任何动作- 此时类调用要使用()，其中（）可以理解为开始初始化- 初始化内的元素，类中其他的函数可以共享![](../Photo/85.png)<jupyter_code>class Joker:
    def __init__(self,num1,num2):
        self.haha = num1
        self.lala = num2
#         self.m = None
#         self.n = None
    def pow2(self,pow_num):
        m = self.haha ** 2 + pow_num
        return m
    def pow3(self):
        n = self.lala ** 3
        return n
    def miuns(self):
        m1 = self.pow2()
        n1 = self.pow3()
        print(n1- m1)
# 创建一个实例
A = Joker()  # A就相当于初始完毕后的Joker
A.pow2()  # !=  Joker().pow2()
A.pow3()
A.miuns()
Joker().miuns()
Joker(num1 = 10 ,num2 = 10).pow2(pow_num = 10)<jupyter_output><empty_output><jupyter_text>- Circle 和 className_ 的第一个区别有 __init__ 这个函数- 。。。。   第二个区别，类中的每一个函数都有self的这个“参数”  何为self？- self 是指向对象本身的参数- self 只是一个命名规则，其实可以改变的，但是我们约定俗成的是self，也便于理解- 使用了self就可以访问类中定义的成员  使用类 Cirlcle  类的传参- class ClassName:            def __init__(self, para1,para2...)：                        self.para1 = para1                        self.para2 = para2  EP:- A：定义一个类，类中含有两个功能：    - 1、计算随机数的最大值    - 2、计算随机数的最小值- B：定义一个类，（类中函数的嵌套使用）    - 1、第一个函数的功能为：输入一个数字    - 2、第二个函数的功能为：使用第一个函数中得到的数字进行平方处理    - 3、第三个函数的功能为：得到平方处理后的数字 - 原来输入的数字，并打印结果  类的继承- 类的单继承- 类的多继承- 继承标识>  class SonClass(FatherClass):                        def __init__(self):                            FatherClass.__init__(self)<jupyter_code>class wwwww:
    def __init__(self,money1,money2):
        self.money1 = money1
        self.money2 = money2
        self.res1 = None
        self.res2 = None
        
    def showmoney(self):
        res1 = self.money1 ** 2
        res2 = self.money2 ** 3
        return res1,res2
        
class jisuancha(wwwww):
    def __init__(self,money1,money2):
        wwwww.__init__(self,money1,money2)
    def cz(self):
        RES1,RES2 = self.showmoney()
        print(RES1 -RES2)
B = jisuancha(100,100)
B.showmoney
B.cz()
class pingfang:
    def __init__(self,money1,money2):
        self.money1 = money1
        self.money2 = money2
        self.res1 = None
        self.res2 = None
    def showmoney(self):
        res1 = self.money1 ** 2
        return res1<jupyter_output><empty_output><jupyter_text>私有数据域(私有变量，或者私有函数)- 在Python中 变量名或者函数名使用双下划线代表私有  \__Joker,   def \__Joker():- 私有数据域不可继承- 私有数据域强制继承   \__dir__() ![](../Photo/87.png)  EP:![](../Photo/88.png)![](../Photo/89.png)![](../Photo/90.png)  类的其他- 类的封装    - 实际上就是将一类功能放在一起，方便未来进行管理- 类的继承（上面已经讲过）- 类的多态    - 包括装饰器：将放在以后处理高级类中教    - 装饰器的好处：当许多类中的函数需要使用同一个功能的时候，那么使用装饰器就会方便许多    - 装饰器是有固定的写法        - 其包括普通装饰器与带参装饰器  Homewor UML类图可以不用画 UML 实际上就是一个思维图- 1![](../Photo/91.png)<jupyter_code>class Rectangle:
    def __init__(self,width,heigth):
        self.width = width
        self.heigth = heigth
        print('宽:' + str(self.width) + '高：' + str(self.heigth) )
    def getArea(self):
        area = self.width * self.heigth
        print('面积：' + str(area) )
        return area
    def getPerimeter(self):
        perimeter = (self.width + self.heigth) * 2
        print('周长：' + str(perimeter))
        return perimeter
D = Rectangle(4,40)
D.getArea()
D.getPerimeter()<jupyter_output>宽:4高：40
面积：160
周长：88<jupyter_text>- 2![](../Photo/92.png)<jupyter_code>class Account:<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13682546850304808, 'fraction_numerical': 0.027997290584782116, 'mean_word_length': 2.822260569456428, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 3, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '179584', 'license': 'Apache-2.0', 'n_tokens_mistral': 2194, 'n_tokens_neox': 2247, 'n_words': 278, 'path': 'wk_test6_917.ipynb', 'repo_name': 'wwangkkai/wangkai', 'size': '4429'}