day14类

作者: 暖心人桂 | 来源:发表于2018-09-06 20:55 被阅读0次

    '''

    类:就是拥有相同功能呢个相同属性的对象集合

    对象:累的实列(对象是具体的)

    *变成方式
    *面向过程编程(以算法为工具)
    *面向对象编程(以类和对象为工具(生活化)
    *\类:对用于相同功能放大和相同属性(属性的封装
    封装效果:一个类中可以对多个功能进行封装(多个函数;封装多个属性
    *累的声明格式
    *class类名(父类列表

    • 累的内容

    说明

    class生门类的关键字
    类名标识符.不能是哦关键字,驼峰是命名(第一个单词字母小写其他的单词字母都是大写
    (父类列表):这个比分可以省.这个是集成语法
    累的内容:光开累的方法和累的属性
    类中的方法
    方法(就是声明在累的函数
    1.对象方法:通过对象调用 对象.函数名
    直接写在累的方法,自带一个self参数
    
    2.类方法
    3,静态方法
    构造方法:类型名()--->创建类对应的对象
    创建累的时候,系统会默认给我们创建这个类对应的构造方法
    
    class Person:
        def eat(self):
            print('人吃饭')
    
    
    p1 =Person() #创建Person类的对象,并且将对象的地址存到p1中
    p2 =Person()
    p3 = p2
    print(id(p1),id(p2),id(p3))
    

    调用对象方法

    通过对象调用对象方法,默认参数

    一个雷可以有多个对象

    构造方法:系统自动创建的,方法名和类名一样,用来创建对象

    2.init: init方法的功能是用来做初始化的,和添加对象属性的

    当我们通过构造方法去穿件对象的时候,系统会自动条用init方法

    class Dog:
    def init(self):
    print('init')

    创建对象过程:调用构造方法在内存中开辟空间创建一个对象,然后用用新建的这个对象去调用init方法

    类中的内容:属性和方法
    1属性:(保存值得)
    a.对象的属性:不同的对象,对应的值可能不一样,这样的属性是对象属性,
    类的字段:所有的对象对应的值是一样的
    对象属性
    类中的对象属性是声明在init方法中的,并且声明格式是:self,属性名 = 初值
    2.方法:保存功能的
    对象方法
    类方法
    静态方法
    
    class Student:
        def __init__(self):
            self.name ='余婷'
            self.age = 0
            self.id -'001'
    stu1 = Student()
    print(stu1.mame,stu1.age,stu1.id)
    stu1.mame ='张三'
    
    class Rectangle:
        def __init__(self,width,tall):
            self.width=width
            # self.tall=tall写一个矩形,有长和宽两个功能,分别是求周长面积
            # 练习2:写一个班级类,编辑里面有多个学生的成绩(一门),可以获取编辑成绩中的最高分
    

    python是童泰语言,Python中类的对象的属性可以进行增删的操作

    class Person:
        def __init__(self):
            self.name ='张三'
            self.age = 18
            self.height = 160
        p1 = Person()
        print(p1.mame)
    

    对象方法:

    直接声明在类的函数默认是对象方法,有一个默认参数self

    对象方法要通过对象来用

    对象方法中默认参数self,不需要传参,以为在调用这个方法的时候系统会自动将当前传给self

    那个对象调用的方法,self就是向谁

    class Circle:
        def __init__(self,ranius1):
            self.ranius = ranius1
        def area(self):
            print('求圆的面积')
    
    class  Circle:
        def __init__ (self,width,length):
            self.width=width
            self.length=length
            print('%d长乘以宽:'%(width*length))
    class Studentclass
        def __init__(self,result,class_name,subjects):
            self.subjects=subjects
            self.class_name=class_name
            self.result=result
    
    
    # 类的属性叫类的字段
    # 类的字段就是声明在累的里面,方法的外面的变量
    #什么样的属性声明成类的字段
    #属于类的,对于这个类的所有的对象来说其值是共享的
    
        通过类来使用:类.字段
        class Person:
           # 这个number就是类的字段
            number=90
        print(Person.number)
    

    写一个类,用一个属性来保存这个类的对象的个数

    class Ball:
        count = 0
        def __init__(self):
            Ball.count+=1
            ball1 = Ball()
            print(Person.number)
    

    作业

    向对象作业1:

    # 1.声明 个电脑类: 属性:品牌、颜 、内存 法:打游戏、写代码、看视频

    # a.创建电脑类的对象,然后通过对象点的 式获取、修改、添加和删除它的属性

    b.通过attr相关 法去获取、修改、添加和删除它的属性

    class Computer:
        def __init__(self,brand,color,memory):
            self.brand=brand#品牌
            self.color=color#颜色
            self.memory=memory#内存
    
        def play_the_game(self):
            print('打游戏')
    
        def write_the_code(self):
             print('写代码')
    
        def watching_TV(self):
             print('看视频')
    
    c1 = Computer('苹果','white','8GB')
    c1.play_the_game()
    c1.write_the_code()
    c1.watching_TV()
    
    #获取
    print(c1.brand,c1.memory,c1.color)
    print(getattr(c1,'brand'))
    print(c1.__getattribute__('brand'))
    #修改
    c1.brand = '华为'
    print(c1.brand)
    setattr(c1,'memory',128)
    print(c1.memory)
    c1.__setattr__('color','har')
    print(c1.color)
    #添加
    c1.sex= 'nanxxxxzxxxx'
    print (c1.sex)
    setattr(c1,'The_keyboard','键盘')
    print(c1.The_keyboard)
    c1.__setattr__('The_mouse','鼠标')
    print(c1.The_mouse)
    # #删除
    # del c1.brand
    # delattr(c1, 'memory')
    
    print(hasattr(Computer,'brand'))
    

    # 2.声明 个 的类和狗的类:

    # 狗的属性:名字、颜 、 龄 狗的 法:叫唤

    人的属性:名字、龄、狗 的 法:遛狗

    a.创建 的对象 明,让他拥有 条狗 ,然后让 明去遛

    class People:
        def __init__(self,name,age,dog,):
            self.age=age
            self.name=name
            self.dog=dog
        def Walk_the_dog(self):
            print('名字:%s 年龄:%d' %(self.name,self.age))
            print('%s正在遛%s' % (self.name,self.dog.老污龟))
            self.dog.call()
    
    
    class Dog:
        def __init__(self,老污龟,color,age):
            self.老污龟=老污龟
            self.color=color
            self.age=age
        def call(self):
            print('%s汪汪汪' %self.老污龟)
    
    dog1 = Dog('老污龟','green',12)
    
    
    person1 = People('小明',23,dog1)
    person1.dog.call()
    person1.Walk_the_dog()
    
    # # 3.声明 个矩形类:
    # # 属性: 、宽  法:计算周 和 积 a.创建 同的矩形,并且打印其周 和 积
    class Rectangular:
        def __init__(self,long,wide):
            self.long=long
            self.wide=wide
        def area(self):
            return self.long * self.wide
        def perimeter(self):
            return (self.long + self.wide) * 2
            # print('周长是%s面积是%s:%d'%(self.long*self.wide))
    r1 = Rectangular(10,20)
    print(r1.area())
    r2 = Rectangular(10,20)
    print(r2.perimeter())
    
    

    # 4.创建 个学 类:

    # 属性:姓名, 龄,学号 法:答到,展示学 信息 创建 个班级类:

    属性:学 ,班级名 法:添加学 ,删除学 ,点名

    class Student(object):
        def __init__(self,name,age,id):
            self.name = name
            self.age = age
            self.id = id
    
        def amount_to(self):
            print('答到')
    
        def select_info(self):
            print('姓名:%s 年纪:%d 学号:%d' % (self.name,self.age,self.id))
    
    class Class_student(object):
        student_info = {}
        def __init__(self,student,class_name):
            self.student = student
            self.class_name = class_name
    
        def add_student(self):
            self.student_info[self.student.id] = [self.student.name,self.student.age]
            print('添加成功')
    
        def del_student(self):
            self.student_info.pop(self.student.id)
            print('删除成功')
    
        def sign_in(self):
            if self.student.id in self.student_info:
                print("%s到了" % self.student.name)
            else:
                print('%s还没到' % self.student.name)
    
    if __name__ == '__main__':
        stu1 = Student('txf',12,1)
        stu1.amount_to()
        stu1.select_info()
    
        class_stu = Class_student(stu1,'python1806')
        class_stu.add_student()
        class_stu.sign_in()
        class_stu.del_student()
        class_stu.sign_in()
    
    
    

    # 5.写 个类,封装所有和数学运算相关的功能(包含常 功能和常 值, 如:pi,e等)

    class Math(object):
        pi = 3.14
        e = 10
        def rectangle_area(self,width,height):
            return width*height
    
        def circle_area(self,radius):
            return self.pi * radius**2
    
        def power(self,x):
            return self.e**x
    
        def add(self,x,y):
            return x+y
    
    if __name__ == '__main__':
        m = Math()
        print(m.pi)
        print('矩形面积是:%d' % m.rectangle_area(10,20))
        print('圆的面积:%d' % (m.circle_area(3)))
        print('10的%d次方是:%d' % (3,m.power(3)))
        print('3+4等于%d' % m.add(3,4))
    

    结果

    D:\Users\Administrator\PycharmProjects1806\类和对象\venv\Scripts\python.exe D:/Users/Administrator/PycharmProjects1806/类和对象/练习.py
    打游戏
    写代码
    看视频
    苹果 8GB white
    苹果
    苹果
    华为
    128
    har
    nanxxxxzxxxx
    键盘
    鼠标
    False
    老污龟汪汪汪
    名字:小明 年龄:23
    小明正在遛老污龟
    老污龟汪汪汪
    200
    60
    答到
    姓名:txf 年纪:12 学号:1
    添加成功
    txf到了
    删除成功
    txf还没到
    3.14
    矩形面积是:200
    圆的面积:28
    10的3次方是:1000
    3+4等于7
    
    Process finished with exit code 0
    

    相关文章

      网友评论

          本文标题:day14类

          本文链接:https://www.haomeiwen.com/subject/frgxgftx.html