'''
==================================
cooding:utf-8
@Time :2020/6/6 8:04
@Author :henry
@Email :yinpingwei@gmail.com
@File :类与对象2.py
@Software:PyCharm
===================================
'''
类和对象
我懂,但是用起来有点难
类和对象的概念
类:同一类事务的 抽象描述
对象:符合类描述的 具体存在的
功能封装 函数 -
为什么要封装成函数类? ---整体:属性和功能(行为)
首先是 定义类/实现类
生成对象
'''
class 类名(大驼峰):
属性
方法(功能(函数))
self : 是对象本身
实例方法:第一个参数是self
如果想在创建对象的同时,个性化定制对象的属性
初始化:魔法函数 __init__
在你创建对象的同事,自动调用。
类当中可有可无
类属性:直接在类当中定义的,不在任何的实例方法中
类行为:函数加上@classmethod 参数默认为cls cls表示类本身
可以通过cls访问类的属性,但是不能访问实例属性
# 优先用实例属性
实例属性:self.属性名
实例方法:参数第一个是self
实例都是可以访问类属性,类方法的
'''
class Dog:
kind = '狗'
def __init__(self, name, age, kind):
self.name = name
self.age = age
self.kind = kind
@classmethod
def set_kind(cls):
print('我是类行为!!!')
print(cls.kind)
def bark(self):
print('汪汪汪汪。。。。')
print(self.name)
def eat(self):
print('吃狗粮。。。')
def run(self):
print(self.name,'跑起来了。。。')
def sleep(self):
print('要睡觉啦')
cqg = Dog('大白','3个半月','混血')
print('cqg对象的名字:',cqg.name)
cqg.run()
print(cqg.name)
cqg.set_kind()
Dog.set_kind()
print('**************************************************')
you_jm = Dog('小金','1岁','金毛')
print('you_jm对象的名字:',you_jm.name)
you_jm.run()
课后作业
print('************************************* 第四题**********************************************************')
class Case:
use_account = 'woshijinyao300'
use_password = '12345678'
def __init__(self,case_name,account_name,password,expected):
self.case_name = case_name
self.account_name = account_name
self.password = password
self.expected = expected
self.actual = None
def case(self):
print('运行测试用例:{}\n用户名:{},密码:{},预期结果为:{}'.
format(self.case_name,self.account_name,self.password,self.expected))
if self.use_account == self.account_name and self.use_password == self.password:
self.actual = '登录成功!'
print('实际结果是:',self.actual)
else:
self.actual = '登录失败!'
print('实际结果是:', self.actual)
def Compare(self):
if self.actual == self.expected:
print('用例通过')
else:
print('用例失败')
print('********************************************第一个用例*****************************************************')
test01 = Case('正常登录','woshijinyao300','12345678','登录成功!')
test01.case()
test01.Compare()
print('********************************************第二个用例*****************************************************')
test02 = Case('错误的密码登录','woshijinyao300','123458','登录失败!')
test02.case()
test02.Compare()
print('************************************* 第五题**********************************************************')
print('************************************第一种方法********************************************************')
class Student:
def __init__(self,student,name,age,gender,English_results,math_results,chinese_results):
self.student = student
self.name = name
self.age = age
self.gender = gender
self.English_results = English_results
self.math_results = math_results
self.chinese_results = chinese_results
def sum_score(self):
return self.English_results + self.math_results + self.chinese_results
def average_score(self):
return (self.English_results + self.math_results + self.chinese_results) / 3
def personal_info(self):
print('我的身份是:{},我的名字叫:{},年龄:{},性别是:{},英语成绩是:{},数学成绩是:{},语文成绩是:{},总成绩是:{},平均成绩是:{:.2f}'.
format(self.student,self.name,self.age,self.gender,self.English_results,self.math_results,
self.chinese_results,member.sum_score(),member.average_score()))
member = Student('学生','魏魏',20,'男',97,57,60)
member.personal_info()
print('************************************第二种方法********************************************************')
class Student:
student = '学生'
def __init__(self,name,age,gender,English_results,math_results,chiese_results):
self.name = name
self.age = age
self.gender = gender
self.English_results = English_results
self.math_results = math_results
self.chiese_results = chiese_results
def sum_score(self):
total_score = self.English_results + self.math_results + self.chiese_results
print('我的总分是:{}'.format(total_score))
def average_score(self):
ave = (self.English_results + self.math_results + self.chiese_results) / 3
print('我的三科平均分是:{}'.format(ave))
def personal_info(self):
print('我的个人信息:我的名字叫:{},年龄是:{},性别是:{}'.format(self.name,self.age,self.gender))
member = Student('魏魏','25','男',90,85,86)
member.personal_info()
member.sum_score()
member.average_score()