目录双下划线方法(__)元类简介产生类的两种表现形式元类的基本使用元类进阶操作__new__方法双下划线方法(__)面向对象中的双下方法也有一些人称之为是魔法方法,有些双下方法不需要刻意调用,到达某个条件会自动触发,就比如我们在对象实例化中学的__init__方法。__str__:对象被执行打印(print、前端展示)操作的时候自动触发,该方法必须返回字符串类型的数据。
例子:原本应该是打印对象的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-28 20:40:08
                            
                                98阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 如何实现Python class中的双下划线
## 概述
在Python中,双下划线(`__`)被称为名称修饰符或魔术方法,用于指定特殊的方法或属性。通过使用双下划线,可以实现对类的行为和属性的定制和封装。本文将介绍如何在Python class中使用双下划线。
## 实现步骤
以下是实现Python class中双下划线的步骤:
| 步骤 | 描述 |
| --- | --- |
|            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-12 13:08:32
                            
                                102阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python中下环线共有5中  下面开始一一介绍  1.单前导下划线 _xxx:  变量前面使用单下划线,用于指定该名称为“私有”。为方便自己或者阅读代码的人知道以“_”开头的名称只供内部使用,也就是说,如果你写如下代码:          from    xxx    impo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-11 20:16:48
                            
                                308阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            7、 Python 中单下划线和双下划线 >>> class MyClass(): ...     def __init__(self): ...             self.__superpri            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-03 12:43:07
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            使用单下划线(_one_underline)开头表示方法不是API的一部分,不要直接访问(虽然语法上访问也没有什么问题)。使用双下划线开头(__two_underlines)开头表示子类不能覆写该方法。除非你真的知道你在干什么,否则不要使用这种方式。当你想让自己定义的对象也可以像Python内置的对象一样使用Python内置的一些函数或操作符(比如len、add、+、-、==等)时,你可以定义该类            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-24 17:52:23
                            
                                118阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Python 用下划线作为变量前缀和后缀指定特殊变量_xxx   :保护变量,意思是只有类对象和子类对象能够访问到这些变量(尽量避免在类外部直接修改)__xxx__ :系统定义名字__xxx  :类中的私有变量名 核心风格:避免用下划线作为变量名的开始。 因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-06 11:50:45
                            
                                141阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            基础语法一 标识符;对变量、常量、函数、类等对象起的名字;任何场景都严格区分大小写。  ♦ 第一个字符必须是字母表中的字母或下划线 ‘_’,中文亦可单下划线(_foo)代表禁止外部访问的类成员,需通过类提供的接口进行访问,不能使用from xxx import **导入;双下划綫(__foo)代表类的私有成员;以双下划綫开头和结尾(__foo__)的是python里特殊方法专用标识。♦ 标识符其他            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-09 19:29:26
                            
                                145阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.__str__和__repe__class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __str__(self):
        return 'stf:我叫{},今年{}岁'.format(self.name,self.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-09 00:46:06
                            
                                207阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # Python 单下划线和双下划线
在 Python 中,单下划线和双下划线是用来命名变量和方法的一种约定。它们在不同的上下文中有不同的含义,用法也有所不同。在本文中,我们将详细介绍单下划线和双下划线的用法和约定。
## 单下划线(_)
在 Python 中,单下划线通常用于以下两个情况:
1. **约定的私有变量和方法**:在 Python 中,没有真正的私有变量和方法的概念,但是通过            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-13 09:32:26
                            
                                274阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            __foo__:一种约定,Python 内部的名字,用来区别其他用户自定义的命名,以防冲突. _foo:一种约定,用来指定变量私有.程序员用来指定私有变量的一种方式. __foo:这个有真正的意义:解析器用_classname__foo 来代替这个名字,以区别和其他类相 同的命名.            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-04-21 18:05:00
                            
                                469阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            单划线(_) _代表交互式解释器会话中上一条的执行结果。 还可以使用单个下划线来格式化变量的值, a=1_000_000 。 单个下划线还可以使用            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-10-08 10:56:22
                            
                                292阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、双下方法  定义:双下方法是特殊方法,它是解释器提供的 由双下划线加方法名加双下划线 方法名的具有特殊意义的方法,双下方法主要是python源码程序员使用的,我们在开发中尽量不要使用双下方法,但是深入研究双下方法,更有益于我们阅读源码。(1)调用:不同的双下方法有不同的触发方式, <1> __ len__ – len() 触发 class A(object):def __init_            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-20 22:22:29
                            
                                91阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            区别:xx:公有变量,所有对象都可以访问;xxx:双下划线代表着是系统定义的名字。 __xxx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问。代表着类中的私有变量名。 _xxx:单前置下划线,私有化属性和方法,类对象和子类可以访问。不能用“from module import *”导入。 xx_:单后置下划线,用于避免与python关键字的冲突。Python中存在一些特殊的方法,有            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-11 20:17:04
                            
                                209阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            看mentor的脚本时,遇到self._item.callspec.getparam('')语句,理解起来比较困难,找到一篇文章,记录的比较详细,特别记录一下,以备复习。顺带粘一下正文,方便大家学习:主要存在四种情形1. object # public2. __object__ # special, python system use, user should not define like it            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-25 13:04:52
                            
                                50阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1. __call__() 方法对象+() 可以直接调用__call__()方法 , 类似普通函数的调用class CallTest(object):
    def __init__(self):
        print('I am __init__')
    def __call__(self):
        print('I am __call__')
        retur            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-27 19:24:23
                            
                                363阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            __init__ 	类实例创建之后调用, 对当前对象的实例的一些初始化, 没有返回值__name__ 	标识模块的名字的一个系统变量__call__ 	是否可被调用__main__ 	主模块模块名(是否当前模块或导入模块)__new__ 	创建类实例的方法, 创建对象时调用, 返回当前对象的一个实例__init__.py	主要控制包的导入行为__f            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-29 15:52:01
                            
                                55阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            进击のpython  类的双下划线方法双下划线方法是类的特殊方法,是由双下划线加方法名加双下划线进行定义的而这样的写法就表示,它其实是有特殊意义的(没有特殊意义我提他干撒,不是神经病嘛)其实啊,双下划线方法更多是python的源码开发者使用的他们在写源码的时候,会采用这种双下划线方法但是我建议在开发的时候尽量少使用这种方法那尽量少使用,为什么还要说呢?这是因为,学一下这种方法,可以帮助我们更好地理            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-22 19:16:07
                            
                                44阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            该代码片段来自Django源码(django/forms/forms.py)。这段代码的设计就是errors属性是对外API的一部分,如果你想获取错误详情,应该访问errors属性,而不是(也不应该)访问_get_errors方法。双下划线开头之前很多人跟我说Python中双下划线开头表示私有,我在很多地方也见到这样的说法。这样理解可能也不能说错,但这不是Python设计双下划线开头的初衷和目的,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-06 08:45:10
                            
                                95阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Python 用下划线作为变量前缀和后缀指定特殊变量。
_xxx 不能用'from moduleimport *'导入 
__xxx__ 系统定义名字 
__xxx 类中的私有变量名 
以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import 
*”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__f            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-20 23:49:05
                            
                                388阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            进击のpython*****类的双下划线方法双下划线方法是类的特殊方法,是由双下划线加方法名加双下划线进行定义的而这样的写法就表示,它其实是有特殊意义的(没有特殊意义我提他干撒,不是神经病嘛)其实啊,双下划线方法更多是python的源码开发者使用的他们在写源码的时候,会采用这种双下划线方法但是我建议在开发的时候尽量少使用这种方法那尽量少使用,为什么还要说呢?这是因为,学一下这种方法,可以帮助我们更            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 21:44:49
                            
                                56阅读