当前位置: 首页 > news >正文

软件技术毕业设计题目/宁波百度推广优化

软件技术毕业设计题目,宁波百度推广优化,.电子商务网站的开发原则包括,编辑wordpress菜单前言:本文主要介绍python面对对象中的类和继承,包括类方法、静态方法、只读属性、继承等。 一、类方法 传奇文学 https://m.xs86.com 1.类方法定义 使用装饰器classmethod装饰,且第一个参数必须是当前类对象,该参数名一般约定为“…

 

前言:本文主要介绍python面对对象中的类和继承,包括类方法、静态方法、只读属性、继承等。

 

一、类方法

传奇文学 https://m.xs86.com

 1.类方法定义

  使用装饰器@classmethod装饰,且第一个参数必须是当前类对象,该参数名一般约定为“cls",通过它来传递类的属性和方法

(不能传递实例属性和实例方法),跟实例方法的self用法相似。

2.类方法的调用

  实例对象和类对象都可以调用

3.应用场景

  在需要站在类的角度执行某个行为时,那么就可以定义为类方法

class Student:def __init__(self, name, age):self.name = nameself.age = agedef student_info(self):"""实例方法"""print("-----student_info-----")print('name:{}'.format(self.name))print('age:{}'.format(self.age))@classmethod       # 带有@classmethod标志的就是类方法,@xxx 就是装饰器def class_info(cls):  # cls与self的用法一致,self代表的是实例对象本身,cls代表的是类本身"""类方法"""     # 应用场景:需要站在类的角度执行某个行为时,就定义为类方法print("-----class_info-----")print('在校学生')print("cls:", cls)case = Student('张三', 22)
case.student_info()
case.class_info()  # 通过实例对象访问类方法
Student.class_info()  # 通过类对象访问类方法

运行结果:

C:\software\python\python.exe D:/learn/python18_http_request/exercise/test.py
-----student_info-----
name:张三
age:22
-----class_info-----
在校学生
cls: <class '__main__.Student'>
-----class_info-----
在校学生
cls: <class '__main__.Student'>Process finished with exit code 0

 

二、静态方法


 (了解即可,在自动化测试中暂时用不到)

1.静态方法定义

  使用装饰器@staticmethod装饰,参数随意,不需要“self“和“cls"参数,但是方法体中不能使用类或实例的任何属性和方法

2.静态方法的调用

  实例对象和类对象都可以调用

3.应用场景

  用于存放纯逻辑代码,内部不需要引用类或实例的属性和方法

class Student:def __init__(self, name, age):self.name = nameself.age = agedef student_info(self):"""实例方法"""print("-----student_info-----")print('name:{}'.format(self.name))print('age:{}'.format(self.age))@staticmethod       # 静态方法不会牵涉到类和实例,里面只存放逻辑代码def static_move():  # 类和实例都可以调用静态方法"""静态方法"""print("-----static_info-----")print('清华大学的学生')case = Student('张三', 22)
case.student_info()
case.static_move()  # 通过实例对象访问静态方法
Student.static_move()  # 通过类对象访问静态方法

运行结果:

C:\software\python\python.exe D:/learn/python18_http_request/exercise/test.py
-----student_info-----
name:张三
age:22
-----static_info-----
清华大学的学生
-----static_info-----
清华大学的学生Process finished with exit code 0

 

三、只读属性


 (了解即可,在自动化测试中暂时用不到)

1.只读属性定义

  使用装饰器@property装饰,需要一个self参数,即实例对象本身,用于定义一个属性(一般指实例属性),只能读,不能写入

2.只读属性的调用

  通过实例对象去调用

3.应用场景

  属性只能读,不可以写入或更改

class Student:def __init__(self, name, age):self.name = nameself.age = agedef student_info(self):"""实例方法"""print("-----student_info-----")print('name:{}'.format(self.name))print('age:{}'.format(self.age))@propertydef property(self):  # 定义一个只能用,不能改的属性,了解即可"""只读属性"""print("-----property_info-----")return 18case = Student('张三', 22)
case.student_info()
print(case.property)  # 通过实例对象访问只读属性

运行结果:

C:\software\python\python.exe D:/learn/python18_http_request/exercise/test.py
-----student_info-----
name:张三
age:22
-----property_info-----
18Process finished with exit code 0

 

四、继承


   在上一章的随笔中也提到过,在python3中,所有的类都默认继承自object这个父类(基础类)。那么什么是继承?继承的作用是什么呢?

1.继承的定义及作用

  • 定义:面对对象编程中有一个很重要的思想叫继承,子类可以通过继承获得父类的属性和方法,被继承的类叫父类(基类),

      继承的类叫子类

  • 作用:子类可以通过继承获得父类的属性和方法,从而提高开发的效率和代码的复用

2.调用父类里的方法

  子类的实例对象能访问所有父类的实例方法,不管往上有几层父类都可以访问,但不能往下访问自己的子类

class BasePhone(object):"""定义一个手机基础类"""def __init__(self, brand, model, price):self.brand = brandself.model = modelself.price = pricedef phone_func(self):"""手机功能"""print("这款手机是触屏手机")print("这款手机是智能手机")print("这款手机有红外线功能")print("这款手机有nfc功能")class HonorPhone(BasePhone):"""继承手机基础类,这是荣耀系列手机,基础功能都有"""def phone_info(self):print("您的手机品牌是{},型号{},价格{}".format(self.brand,self.model,self.price))def honor_func(self):"""荣耀功能"""print("这款手机支持HiFi")print("这款手机可以玩mobile游戏")print("这款手机支持应用分屏")class HonorPorPhone(HonorPhone):"""继承手机基础类,这是荣耀pro系列手机,基础功能和荣耀功能都有"""def new_func(self):"""新功能"""print("这款手机支持30倍变焦")# 实例化对象,继承后有最上层父类的初始化方法,需要传三个参数
phone1 = HonorPorPhone('荣耀手机', 'Honor20pro', '¥3599')
phone1.phone_info()
phone1.phone_func()    # 调用最上层父类的方法(子类创建出来的对象能访问所有父类的实例方法)
phone1.honor_func()   # 调用父类的方法
phone1.new_func()   # 调用自己的方法

phone2 = HonorPhone('荣耀手机', 'Honor20', '¥2999')
# 作为HonorPorPhone类的父类,创建出来的对象不能访问子类(即HonorPorPhone类)的实例方法,不能往下访问
phone2.new_func()     # 因此这里运行会报错

运行结果:

C:\software\python\python.exe D:/learn/python18_http_request/exercise/test.py
您的手机品牌是荣耀手机,型号Honor20pro,价格¥3599
这款手机是触屏手机
这款手机是智能手机
这款手机有红外线功能
这款手机有nfc功能
这款手机支持HiFi
这款手机可以玩mobile游戏
这款手机支持应用分屏
这款手机支持30倍变焦
Traceback (most recent call last):File "D:/learn/python18_http_request/exercise/test.py", line 62, in <module>phone2.new_func()
AttributeError: 'HonorPhone' object has no attribute 'new_func'Process finished with exit code 1

调用父类的属性也是如此,这里就不再举例了。

 

3.子类中调用重名的父类方法

  子类不仅仅可以调用父类的方法,也可以重写父类的方法再重新调用,简单来说在子类中写一个与父类同名的方法,并且也沿用父类方法里的代码,

只是在父类方法基础上再增加一些代码,子类重写了父类的方法后,再调用父类方法的方式有两种:

  • 方式一:父类名.方法名(self)

  • 方式二:super().方法名()

# -*- coding:utf8 -*-
"""
=================================Time    : 2019/10/8 21:04Author  : miki_pengEmail   : 307325534@qq.comFile    : day12_class_object.py
==================================
"""
# 继承:在python3的继承中,所有的类都默认继承自object这个父类(基础类)
# 两种写法都默认继承object类
# class Phone:
#     pass
#
# class BasePhone(object):
#     passclass BasePhone(object):"""定义一个手机基础类"""def __init__(self, brand, model, price):self.brand = brandself.model = modelself.price = pricedef phone_func(self):"""手机功能"""print("这款手机是触屏手机")print("这款手机是智能手机")print("这款手机有红外线功能")print("这款手机有nfc功能")class HonorPhone(BasePhone):"""继承手机基础类,这是荣耀系列手机,基础功能都有"""def phone_info(self):print("您的手机品牌是{},型号{},价格{}".format(self.brand,self.model,self.price))def phone_func(self):"""重写父类的手机功能方法,在这基础上增加一个功能"""print("这款手机有双摄像头")# BasePhone.phone_func(self)  # 重写父类同名方法后,再调用父类的方法   第一种方式super().phone_func()    # 重写父类同名方法后,再调用父类的方法   第二种方式(常用)def honor_func(self):"""荣耀功能"""print("这款手机支持HiFi")print("这款手机可以玩mobile游戏")print("这款手机支持应用分屏")class BetaPhone(BasePhone):    # 这个类没有重写父类的手机功能方法"""继承手机基础类,这是Beta系列手机,有基础功能"""def phone_info(self):print("您的手机品牌是{},型号{},价格{}".format(self.brand,self.model,self.price))def new_func(self):"""新功能"""print("这款手机支持30倍变焦")# 实例化对象,继承后有最上层父类的初始化方法,需要传三个参数
phone1 = HonorPhone('荣耀手机', 'Honor20', '¥2999')
phone1.phone_info()
phone1.phone_func()    # 调用父类的方法
phone1.honor_func()   # 调用自己的方法print("-------------分割线------------")
phone2 = BetaPhone('Beta手机', 'Beta8', '¥3299')
phone2.phone_info()
phone2.phone_func()
phone2.new_func()

运行结果:

C:\software\python\python.exe D:/learn/python18_http_request/exercise/test.py
您的手机品牌是荣耀手机,型号Honor20,价格¥2999
这款手机有双摄像头
这款手机是触屏手机
这款手机是智能手机
这款手机有红外线功能
这款手机有nfc功能
这款手机支持HiFi
这款手机可以玩mobile游戏
这款手机支持应用分屏
-------------分割线------------
您的手机品牌是Beta手机,型号Beta8,价格¥3299
这款手机是触屏手机
这款手机是智能手机
这款手机有红外线功能
这款手机有nfc功能
这款手机支持30倍变焦Process finished with exit code 0

重写父类方法后也可以不再调用父类方法,相当于把重名的方法重新写一遍,如果觉得理解不了,自己多敲几遍,举一反三练习一下吧!

 

 

作者:miki_peng

出处:https://www.cnblogs.com/miki-peng

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,请大家尊重原创,如要转载,请在文章页面明显位置注明出处,否则保留追究法律责任的权利。
http://www.jmfq.cn/news/5144455.html

相关文章:

  • wordpress 多语言 站点/北京seo服务商找行者seo
  • 枸杞网站的建设方案/广告推广策划
  • 网站建设推广优化话术/如何让百度快速收录网站文章
  • 贵阳网站开发谁家做的好/志鸿优化设计
  • 网站开发 前端如何学习/爱站
  • 合肥企业建站系统/seo权重是什么意思
  • 乌尔禾区做网站哪里好/友情链接交换平台
  • 济南住建网站/网站优化排名操作
  • 景德镇陶瓷学院校友做网站的/百度推广优化工具
  • 网站如何做口碑营销/想要推广网页
  • 网站栏目页 优化/阿里云域名注册官网网址
  • 云南高端网站建设公司/百度手机版
  • 视频收费网站怎么做/百度品牌推广
  • 外语教学网站开发/sem和seo哪个工作好
  • 做网站用需要几个软件/合肥网络公司seo建站
  • 长沙市政府网/网站优化包括哪些
  • 乾安网站建设哪家好/优质网站
  • 石家庄哪里有做网站/安卓排名优化
  • 昆山做网站找文博/seo网站结构优化的方法
  • 中国做外贸网站有哪些问题/怎么创建一个属于自己的网站
  • 专门做视频的网站/百度竞价代运营外包
  • 重庆忠县网站建设公司/北京网络推广外包公司排行
  • 蓝色网站模板/最新seo新手教程
  • 怎样做展会推广网站/宁波网站建设优化企业
  • 百度网站查反链/百度推广营销
  • 网站背景 手机显示不全/seo网站推广推荐
  • wordpress关闭手机访问/百度seoo优化软件
  • 增城网站建设/容易被百度收录的网站
  • 做网站师傅/seo用什么论坛引流
  • 杭州网站建设出 名/seo公司培训课程