首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python"自我"约定__init__ vs方法

在Python中,__init__和方法是两种不同的概念。

__init__是一个特殊的方法,用于初始化对象的属性。当你创建一个类时,__init__方法会自动被调用,以便为对象的属性设置初始值。__init__方法通常在类的定义中定义,例如:

代码语言:python
代码运行次数:0
复制
class MyClass:
    def __init__(self, name):
        self.name = name

在上面的例子中,__init__方法接受一个参数name,并将其赋值给对象的name属性。

方法是类的成员函数,用于定义对象的行为。方法通常在类的定义中定义,例如:

代码语言:python
代码运行次数:0
复制
class MyClass:
    def __init__(self, name):
        self.name = name

    def say_hello(self):
        print(f"Hello, my name is {self.name}")

在上面的例子中,say_hello方法定义了一个对象的行为,即打印出对象的名称。

总之,__init__方法是用于初始化对象的属性,而方法是用于定义对象的行为。在Python中,它们是两种不同的概念。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python - 面向对象编程 - __init__() 构造方法

什么是构造方法 在创建类时, 可手动添加一个 方法,称为构造方法,这是一个实例方法 __init__() 构造方法用于创建实例对象时使用,每当创建一个类的实例对象时,Python 解释器都会自动调用它...一般用来初始化对象的某些属性 构造方法语法格式 class 类: def __init__(self, 参数): self.属性 = 参数      ......类的默认构造方法 __init__() 构造方法并不是必写 假设不写,Python 也会自动添加一个仅包含 self 参数的 __init__() 构造方法,这又称为类的默认构造方法 不带参数的构造方法栗子...# 不带参数 class PoloBlog: def __init__(self): print("自动调用构造方法") # 定义了一个实例属性...__init__() 构造方法 带参数的构造方法栗子 # 带参数 class PoloBlog: def __init__(self, name, age): print("自动调用构造方法

32130

Python中的__init__()方法整理中(两种解释)

解释一:看懂了就不用看第二种了 __init__()方法Python学习当中重要的基础知识,__init__()方法意义重大的原因有两个。...在我们接触__init__()方法之前,无论如何,我们都需要粗略、简单地看看在Python中隐含的object类的层次结构。...《Python之禅》中的建议:     "显式比隐式更好。" 一个__init__()方法应该让实例变量显式。 可怜的多态 灵活和愚蠢就在一念之间。...在超类中实现init() 我们通过实现__init__()方法来初始化对象。当一个对象被创建,Python首先创建一个空对象,然后为那个新对象调用__init__()方法。...在超类中实现__init__() 我们通过实现__init__()方法来初始化对象。当一个对象被创建,Python首先创建一个空对象并为该新对象调用__init__()方法

2.7K60
  • Python中的__init__()方法整理中(两种解释)

    解释一:看懂了就不用看第二种了 __init__()方法Python学习当中重要的基础知识,__init__()方法意义重大的原因有两个。...在我们接触__init__()方法之前,无论如何,我们都需要粗略、简单地看看在Python中隐含的object类的层次结构。...《Python之禅》中的建议:     "显式比隐式更好。" 一个__init__()方法应该让实例变量显式。 可怜的多态 灵活和愚蠢就在一念之间。...在超类中实现init() 我们通过实现__init__()方法来初始化对象。当一个对象被创建,Python首先创建一个空对象,然后为那个新对象调用__init__()方法。...在超类中实现__init__() 我们通过实现__init__()方法来初始化对象。当一个对象被创建,Python首先创建一个空对象并为该新对象调用__init__()方法

    6.5K50

    Python面向对象编程-类和对象__init__和__del__方法

    Python中,__init__和__del__是类的两个特殊方法,它们分别在对象实例化和销毁时调用。本文将介绍这两个方法的定义、用途和如何使用它们。...__init__方法__init__方法是类的构造函数,在对象实例化时被调用。它用于初始化对象的属性,以及执行必要的设置和验证。该方法可以带有参数,这些参数用于设置对象的初始状态。...以下是一个使用__init__方法的示例:class MyClass: def __init__(self, x, y): self.x = x self.y = yobj...= MyClass(3, 5)print(obj.x, obj.y) # 输出: 3 5在上面的示例中,我们定义了一个名为MyClass的类,并在其__init__方法中初始化x和y属性。...__init__方法的主要用途是初始化对象的状态。在类的实例化期间,该方法可以执行必要的验证和设置,以确保对象的正确状态。__del__方法__del__方法是类的析构函数,在对象销毁时被调用。

    37220

    Python自学成才之路 元类中的__new__和__init__方法

    元类其实和普通类一样,普通类的__new__方法是创建实例,__init__方法是初始化实例,说是初始化,其实就是可以给实例添加一些属性。...元类__init__中的第一个参数是cls(普通类是self)表示的是类实例本身,有了类实例本身,当然能对类做一些修改。那么在__new__和__init__方法中都可以对类实例做什么样的修改?...在下面这个案例中,我将分别在__new__和__init__方法中做一些手术。...在这个案例中分别在__new__和__init__方法对三要素做了修改,在__new__方法中改了__slots__属性,加了基类tag2,改了类名,加了属性,删除了bar方法。...主要原因是创建类实例是在__new__方法中执行的,在__init__方法中实例已经生成了,改三要素也不会再一次生成类实例。所以要想在__init__方法中起到作用,只能修改实例本身。

    61930

    概率分析方法与推断统计(来自我写的python书)

    在数据分析统计的场景里,常用的方法除了描述性统计方法外,还有推断统计方法,如果再从工作性质上来划分,推断统计包含了参数估计和假设验证这两方面的内容。...而推断统计用到了很多概率统计方法,所以本小节在介绍推断统计的内容前,还将讲述一些常用的概率统计方法。...在第5行到第8里,指定了期望和方法,生成了1000个随机数,在第10行里,通过normaltest方法验证该序列是否符合正态分布。...4 参数估计方法 参数估计方法是推断统计的一种方法,该方法的理论基础是正态分布,也就是说,如果该方法的适用范围是满足正态分布的序列。...本文出自我写的书: Python爬虫、数据分析与可视化:工具详解与案例实战,https://item.jd.com/10023983398756.html ? ? ​

    77810

    【从零学习python 】46. Python中的__new__和__init__方法解析及单例设计模式

    __new__和__init__方法 class A(object): def __init__(self): print("这是 init 方法") def __new...__new__(cls) A() 总结 __new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供。 __new__必须要有返回值,返回实例化出来的实例。...__init__有一个参数self,就是__new__返回的实例。__init__在__new__的基础上可以完成一些其他初始化的动作。__init__不需要返回值。...__new__方法在创建实例时被调用。如果__instance为None,说明还没有创建实例,此时通过object的__new__方法创建一个新实例,并将其赋值给__instance。...__init__方法在实例化后调用。如果是第一次创建实例,则进行初始化操作。由于第一次创建实例后__is_first被设置为False,因此后续创建的实例不会执行初始化操作。

    11010

    Python中规范的变量命名会让你的代码更优雅

    py # 好名字 vs. 糟糕的名字 age = 13 # 清晰易懂 x = 13 # 猜猜我是谁?...命名的方法 驼峰式(CamelCase) 当变量由多个单词组成,除了第一个单词,每个单词首字母大写,不使用下划线。 下划线式(snake_case) 每个单词间用下划线连接,全部小写。...Python社区偏爱下划线式,因为它更易读。 py # 驼峰式 vs....在整个项目中保持一致的命名风格,这是专业程序员的自我修养。 使用英文 虽然Python很国际化,但为了代码的通用性和阅读者的方便,建议使用英文命名。...团队约定 如果你在团队中工作,确保大家遵守相同的命名规则。团队协作,规则先行。 回顾与重构 定期回顾代码,看看是否有变量命名可以改进的地方。重构不只是代码的优化,也是命名艺术的提升。 2.

    8010

    Python自学成才之路 详解类的三个重要方法__new__,__init__,__call__

    文章目录 __call__方法 __new__和__init__ 这里对类做两种划分,元类和普通类(基类中不包含type)。...__call__方法 首先介绍一下__call__方法python中要想一个类的对象能够像函数一样被调用,那这个类需要实现__call__方法。...__new__中产生person实例,此时实例没有任何属性,__init__方法为person实例添加属性。...上面其实介绍的都是普通类的__new__, init, __call__方法,实际上元类这三个方法的含义和普通类是一样的,只是元类的实例是类,所以元类这三个方法的作用依次是 new:创建元类对象(类实例...__这两个方法除了第一个参数不一样之外,后面两个参数值是完全一样的,其实通过__new__方法已经把完整类实例创建好了,那__init__方法到底可以做什么?

    32010

    理解Python中的下划线(_)的五种用法

    如果您是python程序员,对于for _ in range(10),以及__init__(self)的语法可能比较熟悉。 这篇文章将解释什么时候以及如何使用下划线(_),并帮助你理解它。...PEP8是Python约定准则,它介绍了以下4种命名情况: _single_leading_underscore (首部单下划线) 此约定用于声明模块中的私有变量、函数、方法和类。...__double_leading_and_trailing_underscore__ (首尾部双下划线) 这个约定用于特殊的变量或方法(所谓的“魔法方法”),如:__init__, __len__。...这些方法提供了特殊的语法特征或做了特殊的事情。例如,__file__表示Python文件的位置,当a==b表达式被执行时,__eq__被执行。...用于i18n/l10n的内置库gettext使用了这种约定Python web框架Django支持i18n/l10n也引入并使用了这种约定

    2.1K10

    Python中下划线的5种含义

    单下划线和双下划线在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。...单前导下划线 _var 当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。 它是对程序员的一个提示 - 意味着Python社区一致认为它应该是什么意思,但程序的行为不受影响。...下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。 这不是Python强制规定的。...这是因为Python中的单个下划线前缀仅仅是一个约定 - 至少相对于变量和方法名而言。 但是,前导下划线的确会影响从模块中导入名称的方式。...双前导下划线 __var 到目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。 而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同了。

    1.5K70

    初学Python语言者必须理解的下划线

    如果你是一名Python程序员,对于诸如 _ in range(10) , __init__(self) 之类的下发肯定熟知。 本文将详述下划线(_)的使用方法,帮助初学者理解它。...双下划线开始和结尾 这种约定用于特殊的变量或者方法——称为“魔法方法”(译者想:“magic method”,是不是翻译成“魔幻方法”更好呢?这些特殊方法本来就让学习者感到很“魔幻”。)...,比如__init__, __len__。这些方法提供了一些特殊的功能,比如__file__声明本地的Python文件,__eq__实现了表达式a == b。...一般的开发者,很少定义这些方法,但是,在定义类的时候__init__常常在实例化是被执行。...Python中的web开发框架Django也支持i18n/l10n,并应用此约定

    70520

    Python中 5 种不同的下划线含义你都知道吗?

    单下划线和双下划线 在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。...单前导下划线 _var 当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。它是对程序员的一个提示:意味着Python社区一致认为它应该是什么意思,但程序的行为不受影响。...下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。该约定在PEP 8中有定义。 这不是Python强制规定的。...这是因为Python中的单个下划线前缀仅仅是一个约定 - 至少相对于变量和方法名而言。 但是,前导下划线的确会影响从模块中导入名称的方式。...双前导下划线 __var 到目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同了。

    87231

    掌握 Python 中下划线的 5 个潜规则

    单下划线和双下划线 在Python变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示 - 而有一些含义是由Python解释器严格执行的。...单前导下划线 _var 当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。它是对程序员的一个提示:意味着Python社区一致认为它应该是什么意思,但程序的行为不受影响。...下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。该约定在PEP 8中有定义。 这不是Python强制规定的。...这是因为Python中的单个下划线前缀仅仅是一个约定 - 至少相对于变量和方法名而言。 但是,前导下划线的确会影响从模块中导入名称的方式。...双前导下划线 __var 到目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同了。

    52820

    Python类对象

    为此类定义可能包含一个名为 __init__() 的特殊方法,就像这样: def __init__(self): self.data = [] 当一个类定义了 __init__() 方法时,类的实例化操作会自动为新创建的类实例发起调用...可能的约定包括方法名称使用大写字母,属性名称加上独特的短字符串前缀(或许只加一个下划线),或者是用动词来命名方法,而用名词来命名数据属性。...数据属性可以被方法以及一个对象的普通用户(“客户端”)所引用。 换句话说,类不能用于实现纯抽象数据类型。 实际上,在 Python教程 中没有任何东西能强制隐藏数据 --- 它是完全基于约定的。...这也不过就是一个约定: self 这一名称在 Python 中绝对没有特殊含义。...但是要注意,不遵循此约定会使得你的代码对其他 Python 程序员来说缺乏可读性,而且也可以想像一个 类浏览器 程序的编写可能会依赖于这样的约定

    75330

    Python下划线5种含义代码实例解析

    五种Python下划线模式速查表: ? 单前导下划线:_var 当涉及到变量和方法名称时,单个下划线前缀有一个约定俗成的含义。...该约定在PEP 8中有定义。 这不是Python强制规定的。 Python不像Java那样在“私有”和“公共”变量之间有很强的区别。...pass 总之,单个末尾下划线(后缀)是一个约定,用来避免与Python关键字产生命名冲突。 PEP 8解释了这个约定。...双前导下划线 __var 到目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。 而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同了。...这些dunder方法通常被称为神奇方法 – 但Python社区中的许多人(包括我自己)都不喜欢这种方法

    68920

    Python学习笔记(六)——面向对象编程

    通过定义一个特殊的init方法,在创建实例的时候,就把name,score等属性绑上去: class Student(object): def __init__(self, name, score...有了init方法,在创建实例的时候,就不能传入空的参数了,必须传入与init方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去: >>> bart = Student('Bart...,可以使用dir()函数,它返回一个包含字符串的list,类似xxx的属性和方法Python中都是有特殊用途的,比如len方法返回长度。...静态语言 vs 动态语言 对于静态语言(例如Java)来说,如果需要传入Animal类型,则传入的对象必须是Animal类型或者它的子类,否则,将无法调用run()方法。...Python的“file-like object“就是一种鸭子类型。对真正的文件对象,它有一个read()方法,返回其内容。

    39210

    我终于把Python中下划线的含义弄清楚了(憋了很久了)

    单下划线和双下划线在Python变量和方法名称中具有含义。其中的某些含义仅是约定俗成的内容,旨在作为对程序员的提示-某些含义是由Python解释器实施的。...如果想知道“ Python变量和方法名称中的下划线和下划线分别是什么意思?”,我将尽力在这里为大家找到答案。...__var__ · 单下划线: _ 单引号下划线: _var 当涉及变量和方法名称时,单个下划线前缀仅具有约定的含义。...这是对程序员的提示,它意味着Python同意它的含义,但不影响程序的行为。 下划线前缀是向其他程序员的提示,即以单个下划线开头的变量或方法供内部使用。此约定在PEP 8中定义。...双首下划线: __var 到目前为止,我们所讨论的命名模式仅从约定约定中获得它们的含义。对于以双下划线开头的Python类属性(变量和方法),情况略有不同。

    10.5K21

    Python专家编程系列: 5. 下划线在命名中的约定(Underscores in Python)

    介绍 在各种python编码规范中,都对命名规则做了很详细的约定。 但是下划线和变量名称的组合,在python中都有特定的含义。...这些含义有些是一种认为约定,有些是python解释器严格执行的准则。 有必要掌握这些约定,来写出专业的代码。 2....所以这里它是由Python解释器强制执行的。 总结: 单前下划线在类成员命名中,约定是在类内部可见。实际访问是不受限制的。...我们可以使用 dir() 方法来查看一个类中所有的魔术方法: class Student: def __init__(self, name, rollno): self.name...__', '__init_ ''' 总结: 双前导和末尾下划线用于Python中的特殊方法,属于语言保留的特性,尽量避免在程序中使用这样的变量和方法定义。

    21840

    Python中的类、对象、继承

    public; 上述访问级别更多的是一种编程约定,即便是以双下划线开头的字段,在类的外部也是可以访问的,但不建议这么做。...类中的方法 Python方法名均为小写字母,不同单词间以下划线进行分割。...特殊方法 以双下划线开头和结尾的方法属于特殊方法,如:__init__(self)、__call__(self)等内置方法。在我们自己定义方法时不建议采取这种方式。...方法的访问级别 Python中以双下划线开头的方法访问级别是private; Python中以下划线开头的方法访问级别是protected; Python中未以下划线开头的方法的访问级别是public;...和字段类似,上述访问级别也只是一种编程约定,即便是以双下划线开头的方法,在类的外部也是可以访问的,但不建议这么做。

    2.3K50
    领券