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