day14类

2018-09-06  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读