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

淘宝返利网站怎么做wordpress数据多

淘宝返利网站怎么做,wordpress数据多,互动营销案例都有哪些,潮州企业网站建设面向对象编程#xff08;OOP#xff09;是Python编程中非常重要的一部分#xff0c;它通过封装、继承和多态这三大特征#xff0c;帮助我们更好地组织和管理代码。除此之外#xff0c;Python还提供了一些其他特性#xff0c;如类属性、类方法和静态方法#xff0c;进一步…面向对象编程OOP是Python编程中非常重要的一部分它通过封装、继承和多态这三大特征帮助我们更好地组织和管理代码。除此之外Python还提供了一些其他特性如类属性、类方法和静态方法进一步增强了面向对象编程的灵活性和功能性。本文将详细介绍这些特性并通过代码示例帮助你更好地理解。 一、面向对象有三大特征 三种封装性、继承性、多态性 1、封装 在Python代码中封装有两层含义 ① 把现实世界中的主体中的 属性和⽅法书写到类的⾥⾯的操作 即为封装。 ② 封装可以为属性和⽅法添加为私有权限不能直接被外部访问 。 1.1、封装中的私有属性和私有⽅法 在⾯向对象代码中我们可以把属性和⽅法分为两⼤类公有属性、⽅法、私有属性、⽅法 Python公有属性、⽅法私有属性、⽅法 公有属性和公有⽅法⽆论在类的内部还是在类的外部我们都可以对属性和⽅法进⾏操作。 但是有些情况下我们不希望在类的外部对类内部的属性和⽅法进⾏操作。我们就可以把这个属性或⽅法封装成私有形式。 1.2、私有属性 设置私有属性和私有⽅法的⽅式⾮常简单在属性名和⽅法名 前⾯ 加上 两个下划线 __ 即可。设置私有属性后不能直接在类的外面访问私有属性但是如果我们在在类外部访问私有属性那么我们需要再类的内部定义访问的“接口”函数专门实现私有属性的访问。 接⼝就是我们通常说的⼀个函数这个函数可以实现对某些属性的访问设置与获取。 在Python中 ⼀般定义函数名 get_xx ⽤来获取私有属性定义 set_xx ⽤来修改私有属性值。 class Person:def __init__(self, name, age):self.__name name # 私有属性self.__age age # 私有属性def get_name(self): # 公共方法用于访问私有属性return self.__namedef set_name(self, name): # 公共方法用于修改私有属性self.__name namedef get_age(self):return self.__agedef set_age(self, age):if age 0:self.__age ageelse:print(年龄不能为负数)# 使用 person Person(张三, 20) print(person.get_name()) # 访问私有属性 person.set_name(李四) # 修改私有属性 print(person.get_name()) 运行结果 对私有属性间接的进行访问 class People:def __init__(self, name, age):self.__name nameself.__age agedef tell_info(self):print(name:%s age:%s % (self.__name, self.__age))def set_info(self, name, age):if not isinstance(name, str):print(名字必须是字符串类型)returnif not isinstance(age, int):print(年龄必须是数字类型)returnself.__name nameself.__age age# 创建实例并调用方法 p People(jack, 38) p.tell_info() # 输出name:jack age:38p.set_info(jennifer, 18) p.tell_info() # 输出name:jennifer age:18p.set_info(123, 35) # 输出名字必须是字符串类型 p.tell_info() # 输出name:jennifer age:18 运行结果 1.3、私有方法 class ATM:def __card(self):print(插卡)def __auth(self):print(用户认证)def __input(self):print(输入取款金额)def __print_bill(self):print(打印账单)def __take_money(self):print(取款)# 定义一个对外提供服务的公共方法def withdraw(self):self.__card()self.__auth()self.__input()self.__print_bill()self.__take_money()# 创建实例并调用公共方法 atm ATM() atm.withdraw() 运行结果 1.4、封装的意义 数据隐藏通过将属性设置为私有使用双下划线__可以防止外部直接访问和修改对象的内部数据。 接口暴露通过提供公共方法如get_xx和set_xx可以控制外部对私有属性的访问和修改。 类中的私有属性和私有⽅法不能被其⼦类继承。 2、继承 2.1、什么是继承 继承是面向对象编程的另一个重要特征。它允许一个类子类继承另一个类父类的属性和方法从而实现代码的重用和扩展。 继承几个基本概念 1、继承⼀个类从另⼀个已有的类获得其成员的相关特性就叫作继承 2、派⽣从⼀个已有的类产⽣⼀个新的类称为派⽣ 很显然继承和派⽣其实就是从不同的⽅向来描述的相同的概念⽽已本质上是⼀样的 3、⽗类也叫作基类就是指已有被继承的类 4、⼦类也叫作派⽣类或扩展类 5、扩展在⼦类中增加⼀些⾃⼰特有的特性就叫作扩展没有扩展继承也就没有意义了 6、单继承⼀个类只能继承⾃⼀个其他的类不能继承多个类单继承也是⼤多数⾯向对象语⾔的特性 7、多继承⼀个类同时继承了多个⽗类 C、Python等语⾔都⽀持多继承 2.2、继承的基本语法 class B(object):pass class A(B):pass a A() a.B中的所有公共属性 a.B中的所有公共⽅法 2.3、单继承 单继承是指一个子类只能继承一个父类。通过继承子类可以复用父类的属性和方法同时还可以扩展自己的属性和方法。 class Animal:def __init__(self, name):self.name namedef speak(self):print(f{self.name} 在叫)class Dog(Animal): # 继承自Animal类def bark(self):print(f{self.name} 汪汪汪)# 实例化Dog对象 dog Dog(旺财) dog.speak() # 调用父类方法 dog.bark() # 调用子类方法 运行结果 2.4、单继承的传递性 在Python继承中如A类继承了B类B类⼜继承了C类。则根据 继承的传递性 则A类也会⾃动继承C类中所有属性和⽅法公共 class C(object):def func(self):print(我是C类中的相关⽅法func)class B(C):passclass A(B):passa A() a.func() 运行结果 2.5、多继承 Python支持多继承即一个子类可以同时继承多个父类。虽然多继承允许我们同时继承⾃多个类但是实际开发中应尽量避免使⽤多继承因为如果两个类中出现了相同的属性和⽅法就会产⽣命名冲突。 class you_car(object):y_name 油车def use_you(self):print(我是油车我使用的是汽油驱动)class dian_car(object):d_name 电车def use_dian(self):print(我是电车我使用的是电力驱动)class hunhe_car(you_car,dian_car):yd_name 油电混动def use_hunhe(self):print(我是油电混懂我既能够使用汽油驱动又能够使用电力驱动)hh hunhe_car() hh.use_hunhe() hh.use_you() hh.use_dian() print(hh.y_name) print(hh.d_name) print(hh.yd_name) 运行结果 2.6、⼦类扩展重写⽗类属性和⽅法 扩展特性继承让⼦类继承⽗类的所有公共属性和⽅法但是如果仅仅是为了继承公共属性和⽅法继承就没有实际的意义了应该是在继承以后⼦类应该有⼀些⾃⼰的属性和⽅法。 什么是重写 如果⼦类中的属性和⽅法与⽗类中的属性或⽅法同名 则⼦类中的属性或⽅法会对⽗类中同名的属性或⽅法进⾏覆盖重写 # 重写2类⽅法的调⽤顺序当我们在⼦类中重构⽗类的⽅法后Cat⼦类的实例先会在⾃⼰的类 Cat 中查找该⽅法 # 当找不到该⽅法时才会去⽗类 Animal 中查找对应的⽅法。 class Animal():def call(self):print(我是动物类中叫方法)class Cat(Animal):# 自定义def cat_call(self):print(我是猫类中喵喵叫的方法)# 重写方法def call(self):print(我是猫类中喵喵叫的方法) # 父类中的方法功能不够在子类中的解决方法 # 1、重写 # 2、定义一个新的方法 c Cat() c.call() 运行结果 2.7、super()调⽤⽗类属性和⽅法 在子类中可以通过super()函数调用父类的方法尤其是在重写父类方法时仍然希望保留父类的行为。在Python3以 后版本中调⽤⽗类的属性和⽅法我们只需要使⽤ super().属性 或 super().⽅法名() 就可以完 成调⽤了。 class Car:def __init__(self, brand, model):self.brand brand # 品牌self.model model # 型号def run(self):print(f{self.brand} {self.model} 在行驶)class ElectricCar(Car):# 重写构造函数def __init__(self, brand, model, battery):super().__init__(brand, model) # 调用父类的构造方法self.battery battery# 重写run方法def run(self):super().run() # 调用父类的run方法print(f在以 {self.battery} 千米每小时的速度在行驶)tesla ElectricCar(Tesla, Model S, 75) tesla.run() 运行结果 2.8.MRO属性或MRO⽅法⽅法解析顺序 当多个父类中有同名方法时Python 需要确定调用哪个父类的方法这就涉及到方法解析顺序MRO。Python 使用 C3 线性化算法来计算 MRO。可以使用__mro__属性或mro()方法查看类的 MRO。 class A:def method(self):print(Method from A)class B(A):def method(self):print(Method from B)class C(A):def method(self):print(Method from C)class D(B, C):pass# 查看D类的MRO print(D.__mro__)# 创建D类的实例 d D() # 调用method方法 d.method() 运行结果 class Parent1:def __init__(self):print(Parent1 __init__)class Parent2:def __init__(self):print(Parent2 __init__)class Child(Parent1, Parent2):def __init__(self):# 调用父类的__init__方法super().__init__()print(Child __init__)# 创建Child类的实例 child Child() print(Child.__mro__) 运行结果 说明有MRO⽅法解析顺序可知在类的继承中当某个类创建了⼀个对象时调⽤属性或⽅法 ⾸先 在⾃身类中去寻找如找到则直接使⽤停⽌后续的查找。如果未找到继续向上⼀级继承的类中去 寻找如找到则直接使⽤没有找到则继续向上寻找...直到object类这就是Python类继承中其⽅法解析顺序。 3、多态 3.1、什么是多态 多态指的是⼀类事物有多种形态。 定义多态是⼀种使⽤对象的⽅式⼦类重写⽗类⽅法调⽤不同⼦类对象的相同⽗类⽅法可以产⽣ 不同的执⾏结果。 ① 多态依赖继承不是必须的 ② ⼦类⽅法必须要重写⽗类⽅法。 好处调⽤灵活有了多态更容易编写出通⽤的代码做出通⽤的编程以适应需求的不断变化 3.2多态原理图 3.3、多态代码的实现 # ⽗类Fruit class Fruit(object):def makejuice(self):print(i can make juice)# ⼦类苹果 class Apple(Fruit):# 重写⽗类⽅法def makejuice(self):print(i can make apple juice)# ⼦类⾹蕉 class Banana(Fruit):# 重写⽗类⽅法def makejuice(self):print(i can make banana juice)# ⼦类橘⼦ class Orange(Fruit):# 重写⽗类⽅法def makejuice(self):print(i can make orange juice)# 定义⼀个公共接⼝专⻔⽤于实现榨汁操作 def service(obj):# obj要求是⼀个实例化对象可以传⼊苹果对象/⾹蕉对象obj.makejuice()# 调⽤公共⽅法 service(Orange()) 运行结果 3.4、在Python中还有哪些多态的案例呢 # 数值相加 print(1 2) # 输出3# 字符串拼接 print(Hello World) # 输出Hello World# 列表合并 print([1, 2] [3, 4]) # 输出[1, 2, 3, 4] 二、面向对象的其他高级特性 1、类属性 类属性是属于类本身的属性而不是类的实例。类属性被该类的所有实例对象所共享。 class Person(object):# 定义类属性count⽤于记录⽣成的Person类对象的个数count 0# 定义⼀个__init__魔术⽅法⽤于进⾏初始化操作def __init__(self, name):self.name name# 对count类属性进⾏1操作⽤于记录这个Person类⼀共⽣成了多少个对象Person.count 1# 1、实例化对象p1 p1 Person(Tom) p2 Person(Harry) p3 Person(Jennifer)# 2、在类外部输出类属性 print(f我们共使⽤Person类⽣成了{Person.count}个实例对象) 运行结果 2、类方法 为什么需要类⽅法在⾯向对象中特别强调数据封装性。所以不建议直接在类的外部对 类属性 进⾏直接获取。所以我们如果想操作类属性建议使⽤类⽅法。 class Tool(object):# 定义⼀个类属性countcount 0# 定义⼀个__init__初始化⽅法def __init__(self, name):self.name nameTool.count 1# 封装⼀个类⽅法专⻔实现对Tool.count类属性进⾏操作classmethod # 声明为类⽅法⽤于对类属性进⾏操作def get_count(cls): # cls代表类对象print(f我们使⽤Tool类共实例化了{cls.count}个⼯具)t1 Tool(斧头) t2 Tool(榔头) t3 Tool(铁锹)Tool.get_count() 运行结果 3、静态方法 静态方法既不操作实例属性也不操作类属性。它通常用于实现与类相关的工具函数。 class Game:staticmethoddef menu():print(1. 开始游戏)print(2. 游戏暂停)print(3. 退出游戏)# 调用静态方法 Game.menu() 三、总结 面向对象编程的三大特征——封装、继承和多态是Python编程中非常重要的概念。通过封装我们可以隐藏对象的内部实现细节通过继承我们可以复用和扩展代码通过多态我们可以编写更加通用和灵活的代码。此外Python还提供了类属性、类方法和静态方法等高级特性进一步增强了面向对象编程的功能性。 希望本文能帮助你更好地理解Python面向对象编程的核心概念并在实际开发中灵活运用这些特性
文章转载自:
http://www.morning.gwtbn.cn.gov.cn.gwtbn.cn
http://www.morning.rqbr.cn.gov.cn.rqbr.cn
http://www.morning.ycpnm.cn.gov.cn.ycpnm.cn
http://www.morning.rdgb.cn.gov.cn.rdgb.cn
http://www.morning.xsklp.cn.gov.cn.xsklp.cn
http://www.morning.rshs.cn.gov.cn.rshs.cn
http://www.morning.qbrdg.cn.gov.cn.qbrdg.cn
http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn
http://www.morning.ssgqc.cn.gov.cn.ssgqc.cn
http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn
http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn
http://www.morning.xmnlc.cn.gov.cn.xmnlc.cn
http://www.morning.pnmtk.cn.gov.cn.pnmtk.cn
http://www.morning.lfttb.cn.gov.cn.lfttb.cn
http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn
http://www.morning.lkcqz.cn.gov.cn.lkcqz.cn
http://www.morning.080203.cn.gov.cn.080203.cn
http://www.morning.1000sh.com.gov.cn.1000sh.com
http://www.morning.rrqbm.cn.gov.cn.rrqbm.cn
http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn
http://www.morning.yrms.cn.gov.cn.yrms.cn
http://www.morning.pflpb.cn.gov.cn.pflpb.cn
http://www.morning.crfyr.cn.gov.cn.crfyr.cn
http://www.morning.fchkc.cn.gov.cn.fchkc.cn
http://www.morning.nrjr.cn.gov.cn.nrjr.cn
http://www.morning.hqwcd.cn.gov.cn.hqwcd.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.kfwrq.cn.gov.cn.kfwrq.cn
http://www.morning.ywpwg.cn.gov.cn.ywpwg.cn
http://www.morning.llfwg.cn.gov.cn.llfwg.cn
http://www.morning.slkqd.cn.gov.cn.slkqd.cn
http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn
http://www.morning.qzbwmf.cn.gov.cn.qzbwmf.cn
http://www.morning.bpwdc.cn.gov.cn.bpwdc.cn
http://www.morning.fsfz.cn.gov.cn.fsfz.cn
http://www.morning.xirfr.cn.gov.cn.xirfr.cn
http://www.morning.tfgkq.cn.gov.cn.tfgkq.cn
http://www.morning.rnjgh.cn.gov.cn.rnjgh.cn
http://www.morning.ndpzm.cn.gov.cn.ndpzm.cn
http://www.morning.rrqgf.cn.gov.cn.rrqgf.cn
http://www.morning.jkszt.cn.gov.cn.jkszt.cn
http://www.morning.dwrbn.cn.gov.cn.dwrbn.cn
http://www.morning.nbgfk.cn.gov.cn.nbgfk.cn
http://www.morning.tygn.cn.gov.cn.tygn.cn
http://www.morning.nytpt.cn.gov.cn.nytpt.cn
http://www.morning.cbndj.cn.gov.cn.cbndj.cn
http://www.morning.pxbky.cn.gov.cn.pxbky.cn
http://www.morning.kqgsn.cn.gov.cn.kqgsn.cn
http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn
http://www.morning.mzzqs.cn.gov.cn.mzzqs.cn
http://www.morning.xkppj.cn.gov.cn.xkppj.cn
http://www.morning.lmjkn.cn.gov.cn.lmjkn.cn
http://www.morning.xmttd.cn.gov.cn.xmttd.cn
http://www.morning.blxor.com.gov.cn.blxor.com
http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn
http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn
http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn
http://www.morning.fdhwh.cn.gov.cn.fdhwh.cn
http://www.morning.lqrpk.cn.gov.cn.lqrpk.cn
http://www.morning.zcxjg.cn.gov.cn.zcxjg.cn
http://www.morning.bdgb.cn.gov.cn.bdgb.cn
http://www.morning.hmjasw.com.gov.cn.hmjasw.com
http://www.morning.zyrcf.cn.gov.cn.zyrcf.cn
http://www.morning.mmqng.cn.gov.cn.mmqng.cn
http://www.morning.qflwp.cn.gov.cn.qflwp.cn
http://www.morning.mrskk.cn.gov.cn.mrskk.cn
http://www.morning.tygn.cn.gov.cn.tygn.cn
http://www.morning.jljiangyan.com.gov.cn.jljiangyan.com
http://www.morning.kttbx.cn.gov.cn.kttbx.cn
http://www.morning.jkftn.cn.gov.cn.jkftn.cn
http://www.morning.fqtzn.cn.gov.cn.fqtzn.cn
http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn
http://www.morning.kgslc.cn.gov.cn.kgslc.cn
http://www.morning.srkqs.cn.gov.cn.srkqs.cn
http://www.morning.wgcng.cn.gov.cn.wgcng.cn
http://www.morning.ctwwq.cn.gov.cn.ctwwq.cn
http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn
http://www.morning.jqmmf.cn.gov.cn.jqmmf.cn
http://www.morning.hfyll.cn.gov.cn.hfyll.cn
http://www.morning.kxrld.cn.gov.cn.kxrld.cn
http://www.tj-hxxt.cn/news/237963.html

相关文章:

  • 网站后台下载器网页设计教程下载
  • 站酷网官网网址蔬菜基地做网站合适吗
  • 怎么做公司的官方网站百度账号登录不了
  • 广州 网站开发 公司电话信誉好的广州做网站
  • 网站栏目页 优化整站优化关键词排名
  • 家庭宽带 做网站wordpress怎么备份数据库结构
  • 怎样制作做实景的网站河北软文搜索引擎推广公司
  • 影楼网站推广dw做了网站还可以做淘宝详情吗
  • 网站改版中 模板湖北网站建设多少钱
  • 代练中介网站有得做吗泰安个人代做网站
  • 网站新闻不收录推广软文代发
  • 网站被降权恢复做电商网站需要的证
  • 注册建设网站的公司网站模板定做
  • flash xml网站微信系统开发技术
  • 网站维护是什么职业网站设计软件开发
  • 北京清控人居建设集团网站想用wordpress建立网站
  • 网站广告位怎么做如何做微网站平台
  • 网站栏目在哪里无锡网站制作有哪些
  • 上海网站建设的软件一步安装wordpress
  • 凡科网电脑版怎么做网站logo123设计网
  • 数字营销网站主页优化展厅效果图网站
  • 西安网站建设 北郊科技最狂潮
  • 开封网站推广公司微网站用什么软件做
  • 云南昆明网站设计国外空间网站源码
  • php网站上传教程网站如何实现多语言
  • 自己做网站给自己淘宝引流建设局网
  • 免费简历模板制作网站企业运营策划公司
  • 阿里云建站视频来个手机能看的网站2021
  • 任丘市网站建设望野博物馆阎焰简历
  • 漯河做网站南宁网站排名优化公司