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

大连普兰店网站建设aso优化技术

大连普兰店网站建设,aso优化技术,做flash网站遇到函数,要学网页设计python面向对像 一、面向对象的三大特性面向对象包含3大主要特性#xff1a;封装私有成员继承复写 pass关键字多态 总结 一、面向对象的三大特性 面向对象包含3大主要特性#xff1a; 封装 封装是面向对象编程中的一个重要概念#xff0c;它指的是将数据#xff08;属性封装私有成员继承复写 pass关键字多态 总结 一、面向对象的三大特性 面向对象包含3大主要特性 封装 封装是面向对象编程中的一个重要概念它指的是将数据属性和操作数据的方法方法捆绑在一起以实现数据的隐藏和保护。通过封装我们可以控制对象内部数据的访问权限只允许通过对象的接口方法来访问和修改数据而不直接暴露数据给外部。 封装表示的是将现实世界事物的属性、行为 封装到类中描述为 成员变量成员方法 从而完成程序对现实世界事物的描述。 在Python中封装通常通过定义类来实现。类中的属性可以用于存储数据而方法可以用于操作这些数据。通过使用访问控制符例如在属性名前加上一个下划线“_”我们可以约定哪些属性和方法是公开的哪些是私有的从而实现封装的效果。 下面是一个简单的示例演示了如何在Python中实现封装 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 age# 创建一个Person对象 person Person(Alice, 30)# 使用公开的方法访问和修改属性 print(person.get_name()) # 输出Alice person.set_age(25) print(person.get_age()) # 输出25# 尝试直接访问属性不推荐 print(person._name) # 输出Alice 私有成员 在Python中以双下划线 __ 开头的属性或方法被视为私有成员private member。私有成员的存在是为了实现封装防止外部直接访问和修改类内部的属性或方法。尽管在语法上可以直接访问私有成员但Python通过名称修饰来对其进行保护。 私有属性通常也被称为私有成员变量。在面向对象编程中私有属性用来表示只能在类的内部访问或修改的成员变量。这种封装性可以确保类的内部状态不会被外部直接访问或修改而是通过公共的接口例如公有方法来进行操作。 当一个名称以双下划线开头时Python会自动对这个名称进行变换将其重命名为 _ClassName__name 的形式其中 ClassName 是包含私有成员的类名。这种变换使得外部无法直接访问私有成员而只能通过特定的方式来间接访问。因此私有属性和私有成员变量通常可以互换使用它们都指代类的内部状态只能通过类内部的方法进行访问和修改。 既然现实事物有不公开的属性和行为那么作为现实事物在程序中映射的类也应该支持。 定义私有成员的方式非常简单只需要 私有成员变量变量名以__开头2个下划线 私有成员方法方法名以__开头2个下划线 即可完成私有成员的设置 class Car:def __init__(self, make, model, year):self.__make make # 私有属性self.__model model # 私有属性self.__year year # 私有属性def get_make(self):return self.__makedef set_make(self, make):self.__make makedef __update_year(self):self.__year 1print(fYear updated to {self.__year})def increase_year(self):self.__update_year()# 创建一个 Car 实例 my_car Car(Toyota, Corolla, 2022)# 尝试访问私有属性不推荐 # 这里实际上访问的是名称经过变换后的属性 print(my_car._Car__make) # 输出Toyota# 使用公开的方法访问和修改私有属性 print(my_car.get_make()) # 输出Toyota my_car.set_make(Honda) print(my_car.get_make()) # 输出Honda# 尝试调用私有方法不推荐 # 这里实际上调用的是名称经过变换后的方法 my_car._Car__update_year() # 输出Year updated to 2023# 使用公开方法调用私有方法 my_car.increase_year() # 输出Year updated to 2024 在上面的示例中__make 、 __model 和 __year 被定义为私有属性外部无法直接访问。我们使用 get_make 和 set_make 方法来间接访问和修改私有属性。同时__update_year 被定义为私有方法外部无法直接调用但我们通过 increase_year 方法间接调用私有方法来更新年份。 通过这种方式我们可以保护类的内部数据和行为确保良好的封装性和安全性。 注意 1. 私有方法无法直接被类对象使用 2. 私有变量无法赋值也无法获取值继承 在面向对象编程中继承是一种重要的概念它允许一个类称为子类继承另一个类称为父类的属性和方法不含私有。子类可以使用父类的所有公共成员并且可以根据需要添加自己的属性和方法。这种机制使得代码的复用变得更加容易并提供了一种层次化的结构来组织和管理类。 在Python中通过在定义子类时将父类作为参数传递给子类即可实现继承。子类可以继承父类的属性和方法不含私有并可以添加新的属性和方法也可以对父类的方法进行重写覆盖以改变其行为。 下面举一个简单的示例来说明继承的概念 # 定义一个父类 class Animal:def __init__(self, name):self.name namedef make_sound(self):pass# 定义一个子类继承自 Animal class Dog(Animal):def make_sound(self):return Woof!# 定义另一个子类也继承自 Animal class Cat(Animal):def make_sound(self):return Meow!# 创建 Dog 对象并调用方法 my_dog Dog(Buddy) print(my_dog.name) # 输出Buddy print(my_dog.make_sound()) # 输出Woof!# 创建 Cat 对象并调用方法 my_cat Cat(Kitty) print(my_cat.name) # 输出Kitty print(my_cat.make_sound()) # 输出Meow! 在上面的示例中Animal 类是父类Dog 和 Cat 类是子类。子类 Dog 和 Cat 继承了父类 Animal 的 name 属性和 make_sound 方法。注意在子类中可以重写父类的方法以实现特定于子类的行为。这里的 make_sound 方法在两个子类中被重写分别返回狗的吠声和猫的喵声。 这样我们就通过子类继承了父类的属性和方法并且可以根据需要添加特定于子类的功能实现了代码的复用和扩展。 当一个类继承自单个父类时称为单继承而当一个类同时继承自多个父类时称为多继承。Python支持多继承允许一个子类继承自多个父类从而获得多个父类的属性和方法。 单继承示例 # 定义一个父类 class Animal:def __init__(self, name):self.name namedef make_sound(self):pass# 定义一个子类继承自 Animal class Dog(Animal):def make_sound(self):return Woof!# 创建 Dog 对象并调用方法 my_dog Dog(Buddy) print(my_dog.name) # 输出Buddy print(my_dog.make_sound()) # 输出Woof! 在这个单继承示例中Dog 类继承自 Animal 类只有一个父类。 多继承示例 # 定义两个父类 class A:def method_a(self):return Method Aclass B:def method_b(self):return Method B# 定义一个子类同时继承自 A 和 B class C(A, B):def method_c(self):return Method C# 创建 C 对象并调用方法 my_c C() print(my_c.method_a()) # 输出Method A print(my_c.method_b()) # 输出Method B print(my_c.method_c()) # 输出Method C 在这个多继承示例中C 类同时继承自 A 和 B 两个父类可以使用两个父类的方法。需要注意的是在多继承中可能出现方法名冲突的情况此时可以通过方法解析顺序MRO来确定调用哪个父类的方法。 多继承注意事项 多个父类中如果有同名的成员那么默认以继承顺序从左到右为优先级。 即先继承的保留后继承的被覆盖 class A:def method(self):return Aclass B:def method(self):return Bclass C(A, B):passc C() print(c.method()) # 输出A 复写 在面向对象编程中方法的覆盖Override或者称为复写Overwrite是指子类重新定义覆盖了从父类继承而来的方法使得子类可以提供自己的实现。当子类中定义了一个与父类中同名的方法时子类中的方法会覆盖父类中的方法从而改变了原有的方法行为。 复写通常用于子类需要定制特定行为而不是完全继承父类方法的情况。通过复写子类可以根据自身的需要重写父类的方法实现多态性和定制化。 子类继承父类的成员属性和成员方法后如果对其“不满意”那么可以进行复写。 即在子类中重新定义同名的属性或方法即可。 以下是一个简单的示例来说明复写的概念 class Animal:def speak(self):print(Animal speaks)class Dog(Animal):def speak(self):print(Dog barks)class Cat(Animal):def speak(self):print(Cat meows)dog Dog() cat Cat()dog.speak() # 输出Dog barks cat.speak() # 输出Cat meows 在这个示例中Animal 类定义了一个 speak 方法而 Dog 和 Cat 类分别继承自 Animal 类并复写了 speak 方法。当调用 speak 方法时根据对象的类型不同会执行相应子类中的方法而不是直接调用父类的方法实现了方法的覆盖效果。 pass关键字 在 Python 中pass 是一个空语句用于在语法上需要语句但程序不需要执行任何操作的情况下进行占位。简单来说pass 关键字表示什么也不做只是作为占位符存在保持语法结构的完整性。 常见的用途包括 占位 在代码中暂时不做任何操作但又需要保持语法结构完整时使用 pass。 占位函数或类 在定义函数或类时暂时不添加具体实现可以使用 pass 作为占位符避免出现语法错误。 例如 # 定义一个空函数 def my_function():pass# 定义一个空类 class MyClass:pass# 使用 pass 占位 if condition:pass else:do_something() 在上述示例中pass 的作用是确保代码的完整性即使暂时不需要实现任何功能也能通过 pass 占位符保持代码的结构正确。 多态 多态性通常与继承和方法覆盖Override相结合。当子类覆盖父类中的方法时可以根据具体的子类对象来调用相应的方法实现多态性。 多态性的优势包括 代码复用 可以通过多态性实现不同类之间共享相同的接口或方法减少重复代码的编写。 灵活性 可以根据具体对象的类型来动态调用方法实现针对不同对象的定制化操作。 简化代码逻辑 通过多态性可以将一组相关的操作抽象到同一个接口中使得代码更加清晰易懂。 多态指的是多种状态即完成某个行为时使用不同的对象会得到不同的状态。 class Animal:def speak(self):print(Animal speaks)class Dog(Animal):def speak(self):print(Dog barks)class Cat(Animal):def speak(self):print(Cat meows)# 多态性的应用 def make_sound(animal):animal.speak()animal Animal() dog Dog() cat Cat()make_sound(animal) # 输出Animal speaks make_sound(dog) # 输出Dog barks make_sound(cat) # 输出Cat meows 在这个示例中make_sound 函数接受一个动物对象作为参数并调用该对象的 speak 方法。根据传入的对象类型不同会执行相应对象的 speak 方法实现了多态性。这样可以通过统一的接口来处理不同类型的对象提高了代码的灵活性和可维护性。 总结 面向对象编程OOP的三大特性是封装、继承和多态。以下是对这三个特性的简要总结 封装Encapsulation 封装是指将数据和方法行为捆绑在一起以防止外部直接访问对象的内部数据。通过封装对象的内部细节被隐藏只暴露必要的接口给外部使用提高了安全性和代码的可维护性。封装还有助于实现信息隐藏并且可以通过 getter 和 setter 方法来控制对属性的访问和修改。 继承Inheritance 继承是指一个类子类可以获取另一个类父类的属性和方法从而实现代码的重用。子类可以扩展或修改父类的功能同时可以继承父类的行为避免重复编写相同的代码。继承有助于建立类之间的层次关系提高代码的可扩展性和灵活性。 多态Polymorphism 多态是指同一种操作作用于不同的对象上时可以产生不同的行为。多态性允许不同类的对象对同一个方法做出不同的响应提高了代码的灵活性和可重用性。多态性通常与继承和方法覆盖Override相结合使得代码可以根据具体对象的类型来动态调用方法实现针对不同对象的定制化操作。 这三大特性共同构成了面向对象编程的基础帮助开发人员设计出结构清晰、可维护、可扩展的代码并提高了代码的重用性和可读性。
http://www.zqtcl.cn/news/703313/

相关文章:

  • 传媒公司取名seo网站推广怎么收费
  • 网站建设具体详细过程WordPress usdt收款
  • 网站标题应怎设置生产备案号怎么查询网站
  • 怎样建立网站目录结构网站 项目方案
  • jsp做网站还响应式科技公司网站模板
  • 杭州网站建设设计公司做阀门网站
  • 用模板建站青岛企业网站制作公司
  • 网站建设经费预算表辽宁工程建设招标网
  • sql数据库查询网站模板谷歌浏览器网页版入口
  • 成都h5建站市场监督管理局举报电话
  • 百度推广弄个网站头像要钱吗?最新新闻热点素材
  • 江苏做网站找谁wordpress主题设置插件
  • 郑州微信网站开发建筑网招工平台
  • 给网站挂黑链普工招聘最新招聘信息
  • 重庆推广网站排名价格上海房产信息网官网
  • 深圳网站公司制作网络公司排名
  • 郑州高端做网站网页制作与网站建设实战大全光盘
  • 科技网站制作公司免费模板建站网站
  • 网页排版精美的中文网站单页设计软件
  • 图书馆网站建设情况会员卡管理系统价格
  • 网站建设的通知沈阳品牌设计公司
  • html5网站框架宝安网站建设深圳信科
  • 做网站单页分销电商平台开发
  • 吉林网站备案南京网站开发选南京乐识好
  • 某网站建设方案纯文本网站连接
  • 怎样做网页游戏网站智通人才网东莞最新招聘信息官网
  • 中英文网站建设wordpress 旅行
  • ic商城网站建设南大资源分享wordpress
  • 永兴集团网站织梦网站模板下载
  • html怎么做网站地图柳州小程序制作公司