python中class的__init__与self简单解释
本文最后更新于 1081 天前,其中的信息可能已经有所发展或是发生改变。

背景简介

  • python中的class,中文翻译成类。而与类相对应的function则称为函数。之前一直写函数,不怎么愿意写class,真实的原因是,在使用python之前,使用的R语言,是函数式编程的写法,基本没怎么接触过类。也就不知道怎么写类,看到别人的代码,对于self和init这两个一直难以理解。
  • 正好最近要写class,索性不再逃避,整理一下思路,记录下来。主要是下面这个网站讲得比较通俗易懂,我也主要是将它翻译过来介绍一下。

一个简单的class是什么样子的?

class MyNewClass:
    '''This is a docstring. I have created a new class'''
    pass

函数是用def定义的,类是用class定义的。函数是有参数的,类不需要加参数和括号。

说类不需要加参数和括号这话并不准确,其实是省略了。

class MyNewClass(Object):

其实完整的写法是上面的这种。

怎么写class?

理解__init__()函数

init 以建造房屋为例

  • 用来初始化实例
  • 任何用此类进行构建的实例,都会有这些特征
  • 在类生成一个实例时(通过图纸设计的房屋,构建好之后,都会配备基本的厨卫设施,都是开发商定制的),会首先运行init函数里面的内容。

理解__开头的函数

__开头的函数(私有函数,局部变量)

  • 只有在这个类里面才可以使用,在生成实例后,无法通过实例来调用此函数。
  • init也是两道下划线开头,意味着不能通过外调用

理解self

要理解self,要先理解类的运行机制

  • self是一种通俗的约定,也可以不用self,只不过大家都使用这个作为默认的参数

self的作用(以建造房屋为例)

  • 类可以相当于设计图纸
  • 实例就是建好的具体房子
  • 而self就是实例,具体的房子
  • 假定有a,b,c三家,那么在生成实例的时候,第一个实例a在类实例化的过程中,self就等于a,在b进行类实例化的过程中,self就等于b
  • 也可以理解成self就是一个类中的全局变量

参考文献

Python Objects and Classes

暂无评论

发送评论 编辑评论


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