面向对象简介

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。

  • 类:创建对象的模版、对象的数据类型
  • 对象:类的变量
  • 属性:类中的变量,表示对象的属性、状态等信息
  • 方法:类中的函数,表示对象所具有的动作、行为等

创建和使用类

基本语法

         class <类名>():
             # 定义成员变量/属性
             # 定义成员方法/方法

定义属性

在类中的属性分为实例属性和类属性,一般来说实例属性是每个实例都有的且属性的值一般不同,每个实例的类属性是相同的。
实例属性需要在创建实例的时候一并进行初始化,而类属性在创建类的时候进行初始化,在创建实例的时候不需要初始化。

         class MyDate():
             # 定义类属性
             time_zone = "China"
             # 定义实例属性
             def __init__(self, year, month, day):
                 self.year = year
                 self.month = month
                 self.day = day
         # 定义/更改类属性
         MyDate.time_zone = "America"
         # 创建实例
         date1 = MyDate(2020, 12,12)
         # 定义实例属性
         date1.hour = 12
  • 访问成员变量:类名.变量名/对象名.变量名

定义方法

         class MyDate():
             # 构造方法
             def __init__(self, year, month, day):
                 self.year = year
                 self.month = int(month)
                 self.day = int(day)
             # 成员方法
             def get_year(self):
                 return self.year
             def get_month(self):
                 return self.month
             def get_day(self):
                 return self.day
             def set_year(self, year):
                 self.year = year
             def set_month(self, month):
                 self.month = month
             def set_day(self,day):
                 self.day = day
  • 定义成员方法时第一个参数为self,表示对当前对象的的引用
  • 方法__init__() 是一个特殊方法,每当根据类创建新实例时,Python都会自动运行它
  • 访问成员方法:对象名.方法名([参数列表])

设置访问控制权限

在Python中,类成员的访问权限可以通过属性(property)、方法(method)以及特殊的命名规则来控制。以下是一些常用的访问修饰符:

  1. public:在Python中,默认所有的类成员都是公开的,可以直接通过对象进行访问
  2. protected:在Python中没有专门的protected关键字,但是可以通过命名约定来表示受保护的成员。按照惯例,可以给方法和属性名称前加上下划线_前缀,这样的成员被称为受保护的。这类成员允许类本身及其子类访问,实际上可以被外部代码访问
  3. private:同样在Python中,可以通过在方法和属性名称前加上双下划线__前缀来定义私有成员。私有成员不能通过对象直接访问,只能通过类内部的方法进行访问和修改。

注意:如果在类外部定义或修改属性值,上述规则失效

继承

编写类时,并非总是要从空白开始。如果要编写的类是另一个现成类的特殊版本,可使用继承 。一个类继承 另一个类时,将自动获得另一个类的所有属性和方法。原有的类称为父类 ,而新类称为子类 。子类继承了父类的所有属性和方法,同时还可以定义自己的属性和方法、重写父类的方法。继承的语法如下:

         class 类名(父类名):
             pass

子类的构造方法__init__

在既有类的基础上编写新类时,通常要调用父类的init()方法 。这将初始化在父类init() 方法中定义的所有属性,从而让子类包含这些属性。
子类如果写了init()方法,就必须显式的调用父类的初始化;如果子类没有init方法,则默认使用父类的初始化。
子类可以使用super().父类方法来调用父类的方法实现部分功能。在python中super是一个特殊的类,super()就是使用super类创建出来的对象

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇