<jupyter_start><jupyter_text>对象和类- 一个学生，一张桌子，一个圆都是对象- 对象是类的一个实例，你可以创建多个对象，创建类的一个实例过程被称为实例化，- 在Python中对象就是实例，而实例就是对象  定义类class ClassName:    do something    - class 类的表示与def 一样- 类名最好使用驼峰式- 在Python2中类是需要继承基类object的，在Python中默认继承，可写可不写- 可以将普通代码理解为皮肤，而函数可以理解为内衣，那么类可以理解为外套<jupyter_code>class zy:
    pass

zy<jupyter_output><empty_output><jupyter_text>定义一个不含初始化__init__的简单类class ClassName:    joker = “Home”        def func():        print('Worker')    - 尽量少使用  定义一个标准类- __init__ 代表初始化，可以初始化任何动作- 此时类调用要使用()，其中（）可以理解为开始初始化- 初始化内的元素，类中其他的函数可以共享![](../Photo/85.png)<jupyter_code>#一切类初始化
class zy:
    def  __init__(self):
        print('我是初始化')
    def Print_(self):
        print('hello world')
hehe=zy()
hehe.Print_()
class ZY:
    def __init__(self):
        print('我是初始化')
    def dd_(self):
        print('小可爱你好')
a=ZY()
a.dd_()
#一切类初始化
class zy:
    def  __init__(self,num1,num2):
        print('我是初始化')
        self.num1=num1
        self.num2=num2
    def Print_(self,name):
        print('hello world',name)
    def SUM(self):
        return self.num1+self.num2
    def zhang(self):
        return self.num1 * self.num2
b=zy(num1=1,num2=2)
b.SUM()
b.zhang()<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、第三个函数的功能为：得到平方处理后的数字 - 原来输入的数字，并打印结果<jupyter_code>class zy1:
    def __init__(self):
        pass
    def input_(self):
        num = eval(input('>>'))
        return num
    def square(self):
        num = self.input_()
        num_2=num ** 2
        return num_2
    def chazhi(self):
        num = self.input_()
        num2 = self.input_()
        return num2-num
hehehe=zy1()
hehehe.square()
hehehe.chazhi()
import random
a=random.randint(0,9)
b=random.randint(0,9)
c=random.randint(0,9)
print(a,b,c)
print(a,b,c)
print(a,b,c)
class ying:
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
    def max_(self):
        return max(self.a,self.b,self.c)
    def min_(self):
        return min(self.a,self.b,self.c)
d=ying(a,b,c)
d.max_()
d.min_()<jupyter_output><empty_output><jupyter_text>类的继承- 类的单继承- 类的多继承- 继承标识>  class SonClass(FatherClass):                        def __init__(self):                            FatherClass.__init__(self)<jupyter_code>import random
class yyy:
    def __init__(self):
        self.zhanghao = '123'
        self.mima = '234'
    def id(self):
        id=input('id:>>')
        key=input('key:>>')
        if  id == self.zhanghao and  key == self.mima:
            print('登录中')
        else:
            number=random.randint(1000,9999)
            print('验证码为:',number)
            c=input('请输入验证码')
            print('输入账号或密码不正确')
                
        
hhh=yyy()
hhh.id()<jupyter_output>id:>>123
key:>>123
验证码为: 5608
请输入验证码5608
输入账号或密码不正确<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=1,heigthd=2):
        self.width = width
        self.heigthd = heigthd
    def getArea(self):
        area = self.width * self.heigthd
        print(self.width)
        print(self.heigthd)
        print("面积为>>:",area)
    def getzhouchang(self):
        zhouchang = 2*self.width + 2*self.heigthd
        print(self.width)
        print(self.heigthd)
        print("周长为>>:",zhouchang)
a= Rectangle()
a.getArea()<jupyter_output>1
2
面积为>>: 2<jupyter_text>- 2![](../Photo/92.png) - 3![](../Photo/93.png) - 4![](../Photo/94.png)![](../Photo/95.png) - 6![](../Photo/97.png)<jupyter_code>def cross_point(line1,line2):
    x1 = line1[0]
    y2 = line1[1]
    x2 = line1[2]
    y2 = line1[3]
    
    x3 = line2[0]
    y3 = line2[1]
    x4 = line2[2]
    y4 = line2[3]
    
    k1 = (y2-y1)*1.0/(x2-x1)
    b1 = y1*1.0-x1*k1*1.0
    if (x4-x3) == 0:
        k2 = None
        b2 = 0
    else:
        k2 = (y4-y3)*1.0/(x4-x3)
        b2 = y3*1.0-x3*k2*1.0
    if k2 == None:
        x = x3
    else:
        x = (b2-b1)*1.0/(k1-k2)
    y = k1*1.0+b1*1.0
    return[x,y]<jupyter_output><empty_output><jupyter_text>- 7![](../Photo/98.png)<jupyter_code>class get:
    def __init__(self,a,b,c,d,e,f):
        self.a = a
        self.b = b
        self.c = c
        self.d = d
        self.e = e
        self.f = f
    def issolvable(self):
        x = (self.e * self.d - self.b*self.f)/(self.a*self.d-self.b*self.c)
        y = (self.a * self.f - self.e*self.c)/(self.a*self.d-self.b*self.c)
        if(self.e * self.d - self.b * self.c) == 0:
            print('无解')
        else:
            print(x,y)
        
yyyy=get(2,3,4,5,6,7)
yyyy.issolvable()<jupyter_output>-4.5 5.0
{'fraction_non_alphanumeric': 0.1598810187767243, 'fraction_numerical': 0.03550845882134226, 'mean_word_length': 2.4642627173213136, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '253481', 'license': 'Apache-2.0', 'n_tokens_mistral': 2773, 'n_tokens_neox': 2822, 'n_words': 342, 'path': '7.23.ipynb', 'repo_name': 'woshimeimeide/mysqll', 'size': '5379'}