美文网首页
Python 面向对象 - 02 基础语法

Python 面向对象 - 02 基础语法

作者: flowerflower | 来源:发表于2019-03-02 22:29 被阅读0次
😝😝.jpg

目录
一、 dir 内置函数
二、类的语法
2.1 类的语法格式
2.2 创建对象
2.3 初始化方法
2.4 在初始化方法内部定义属性
2.5 自定义初始化方法
2.6 __del__ 方法
2.7 __str__ 方法

一、 dir 内置函数

提示 __方法名__ 格式的方法是 Python 提供的 内置方法 / 属性,稍后会给大家介绍一些常用的内置方法 / 属性

方法名 作用
__new__ 创建对象时,会被 自动 调用
__init__ 对象被初始化时,会被 自动 调用
__del__ 对象被从内存中销毁前,会被 自动 调用
__str__ 返回对象的描述信息print 函数输出使用

二、类的语法

2.1 类的语法格式

class 类名:

    def 方法1(self, 参数列表):
      # pass表示占位符 保证程序的代码结构正确 pass关键字不会执行任何操作
        pass
    
    def 方法2(self, 参数列表):
        pass

注意:类名的命名规则要符合大驼峰命名法

2.2 创建对象

  • 当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:
对象变量 = 类名()

2.3 初始化方法

  • 当使用 类名() 创建对象时,会 自动 执行以下操作:
    1. 为对象在内存中 分配空间 —— 创建对象
    2. 为对象的属性 设置初始值 —— 初始化方法(init)
  • 这个 初始化方法 就是 __init__ 方法,__init__ 是对象的*内置方法

__init__ 方法是 专门 用来定义一个类 具有哪些属性的方法

class Chicken:

    def __init__(self):
        print("这是一个初始化方法")
    def eat(self):
        print("%s爱吃肉" % (self.name))


# 使用类名()创建对象的时候,会自动调用初始化方法 __init__
cock = Chicken()

2.4 在初始化方法内部定义属性

  • __init__ 方法内部使用 self.属性名 = 属性的初始值 就可以 定义属性
  • 定义属性之后,再使用 Chicken 类创建的对象,都会拥有该属性
class Chicken:

    def __init__(self):
 #  定义用 Chicken 类创建的猫对象都有一个 name 的属性
         self.name = "大公鸡"
    def eat(self):
        print("%s爱吃肉" % (self.name))

cock = Chicken("公鸡")
cock.eat()

2.5 自定义初始化方法

  • 在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对 __init__ 方法进行 自定义
    1. 把希望设置的属性值,定义成 __init__ 方法的参数
    2. 在方法内部使用 self.属性 = 形参 接收外部传递的参数
    3. 在创建对象时,使用 类名(属性1, 属性2...) 调用
class Chicken:

    def __init__(self,name):
         self.name = name
    def eat(self):
        print("%s爱吃肉" % (self.name))

cock = Chicken("公鸡")
cock.eat()
hen = Chicken("母鸡")
hen.eat()

案例小结
哪一个对象 调用的方法,方法内的 self 就是 哪一个对象的引用

图片.png

2.6 __del__ 方法

  • Python

    • 当使用 类名() 创建对象时,为对象 分配完空间后,自动 调用 __init__ 方法
    • 当一个 对象被从内存中销毁 前,会 自动 调用 __del__ 方法
  • 应用场景

    • __init__ 改造初始化方法,可以让创建对象更加灵活
    • __del__ 如果希望在对象被销毁前,再做一些事情,可以考虑一下 __del__ 方法
  • 生命周期

    • 一个对象从调用 类名() 创建,生命周期开始
    • 一个对象的 __del__ 方法一旦被调用,生命周期结束
    • 在对象的生命周期内,可以访问对象属性,或者让对象调用方法
# 定义类和方法
class Dog:
    # 自定义初始化方法
   def __init__(self,name):
       self.name = name
   def eat(self):
        print("%s在吃东西" %(self.name))
   def __del__(self):
       print("del")
# 创建对象
dog = Dog("大灰灰")
dog.eat()
print(dog)
# del 关键字可以删除一个对象
del dog

2.7 __str__ 方法

  • Python 中,使用 print 输出 对象变量,默认情况下,会输出这个变量 引用的对象由哪一个类创建的对象,以及 在内存中的地址十六进制表示
  • 如果在开发中,希望使用 print 输出 对象变量 时,能够打印 自定义的内容,就可以利用 __str__ 这个内置方法了
# 定义类和方法
class Dog:

    # 自定义初始化方法
   def __init__(self,name):
       self.name = name
   def eat(self):
        print("%s在吃东西" %(self.name))
   def __str__(self):
       # 必须返回字符串
       return "我是:%s" % self.name
# 创建对象
dog = Dog("大灰灰")
dog.eat()
print(dog)

相关文章

  • Python从入门到精通

    Python语法的三个阶段 Python基础语法函数是编程 Python进阶语法面向对象编程 Python高级语法...

  • Python 面向对象 - 02 基础语法

    目录一、 dir 内置函数二、类的语法2.1 类的语法格式2.2 创建对象2.3 初始化方法2.4 在初始化方法内...

  • Python 学习笔记

    Python 学习笔记 Python 基础语法 Python是一种面向对象解释型计算机编程语言,语法简洁凝练,强制...

  • 用wxpython做一个计算器

    实验楼 你需要有以下基础 python2.7基本语法 python面向对象的语法基础 你将学习到以下内容 了解一些...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • 利用Python来协助姑妈买房!Python“买”房比她自己买便

    1、Python基础 Python是一种面向对象、解释型自由语言,语法简洁清晰、基础代码库丰富,覆盖网络、文件、G...

  • Python超详细基础篇

    全文分为两大部分,分别是Python基础语法和面向对象。 第一部分 Python基础语法 第一部分 Python基...

  • 2018-07-31Python (11)

    python 基础语法(11) 面向对象 概念 面向对象最重要的概念就是类和实例,类是实例的抽象,而实例是类的具象...

  • Python OOP-1

    0. OOP-Python面向对象 Python面向对象 面向对象编程基础公有私有继承组合,Mixin 魔法函数魔...

  • Python基础语法(八)面向对象

    类定义 类中包含属性和方法,类通过class来定义 不用定义属性,属性在每个对象中是独立的 对象包含对象 隐藏对象...

网友评论

      本文标题:Python 面向对象 - 02 基础语法

      本文链接:https://www.haomeiwen.com/subject/icyhyqtx.html