精华内容
下载资源
问答
  • 下划线表示什么
    千次阅读
    2020-10-19 16:11:42

    场景

    查下w_开头的用户名。

    过程

    语句为:

    select * from user where user_name like 'w_%';
    

    发现查出的结果明显不对,这是怎么回事呢?

    原因: 在sql中, 下划线_表示匹配任意单个字符。
    使用的时候有2点:
    1、 前面加右斜杠表示转义,如\_表示下划线。
    2、后面加 escape '\' 指明转义字符是右斜杠。

    正确的写法:

    select * from user where user_name like '%w\_%'  escape '\';
    
    更多相关内容
  • 我在C#官方文档的使用属性里看到这种代码: public class Date { private int _month = 7; // Backing store public int Month { get => _month; set ... if ((value > 0) && (value <...这段代码里的_month是以下...
  • 在Python经常能见到含下划线(underscore)修饰的的变量和方法(如__name__,_var等),这些下划线的作用称之为名字修饰(name decoration)。在Python中,名字修饰通常有以下几种情况: 单前缀下划线(single ...

    1. 概述

    在Python经常能见到含下划线(underscore)修饰的的变量和方法(如__name__,_var等),这些下划线的作用称之为名字修饰(name decoration)。在Python中,名字修饰通常有以下几种情况:

    • 单前缀下划线(single leading underscore):_var
    • 单后缀下划线(single trailingunderscore):var_
    • 双前缀下划线(double leading underscores):__var
    • 双前缀+双后缀下划线(double leading & trailing underscores):__var__

    除了名字修饰,在Python中下划线还有以下用法:

    • 单独一个下划线
    • 数字分隔符下划线
    • IPython中的特殊用途

    我们对以上用法进行逐一详解。

    2. 名字修饰(name decoration)

    2.1 单前缀下划线

    方法和实例变量

    Use one leading underscore only for non-public methods and instance variables. [1]

    即,单前缀下划线用于私有的方法和实例变量。但Python和Java不同,并没有对公有和私有进行严格的区分。即便一个方法或者变量有单前缀下划线,也不影响被外界调用,它的作用仅限于一种“提示”(weak “internal use” indicator)。

    class Test:
    
        def __init__(self):
            self.a = "a"
            self._b = "b"
    
        def _private_method(self):
            return ("This is a private method!")
    
    # 单前缀下划线并不影响从外界调用
    t = Test()
    print(t.a)
    print(t._b)
    print(t._private_method)

    导入

    from M import *does not import objects whose names start with an underscore. [1]

    即,当从另一个模块导入内容是,含前缀下划线的内容不会被导入。如

    # demo.py
    a = "a"
    _b = "b"
    
    def _private_function():
        return "This is a private function!"

    from demo import *
    
    print(a)
    print(_b)                   # 会报错,私有变量无法导入
    print(_private_function)    # 会报错,私有函数无法导入

    2.2 单后缀下划线

    single_trailing_underscore_: used by convention to avoid conflicts with Python keyword [1]

    单后缀下划线主要是为了避免与一些Python关键字(如class,sum之类的)的冲突,如

    tkinter.Toplevel(master, class_='ClassName')

    2.3 双前缀下划线

    To avoid name clashes with subclasses, use two leading underscores to invoke Python's name mangling rules.
    Python mangles these names with the class name: if class Foo has an attribute named  __a, it cannot be accessed by  Foo.__a. (An insistent user could still gain access by calling  Foo._Foo__a.) Generally, double leading underscores should be used only to avoid name conflicts with attributes in classes designed to be subclassed. [1]

    双前缀下划线会触发Python中的名字改写规则(name mangling)什么意思呢?举个例子

    class Test:
        __a = "__a"
    
        def __init__(self) -> None:
            self.__b = "__b"
            self._c = "_c"
            self.d = "d"
    
    t = Test()
    print(dir(t))

    猜猜会打印什么呢?结果如下

    name mangling

    你会发现有_c和d,但是没有__a和__b。这是为什么呢?这是因为他们被改写成了_Test__a和_Test_b。因为名字被改写,所以不能通过t.__a访问,但是可以通过t._Test__a进行访问。

    print(t.__a)        # 会报错
    print(t._Test__a)   # 不会报错

    为什么要这样设计呢?这样是为了避免在继承的时候,这些变量被重写,如

    class Test:
        __a = "__a"
    
    class SubTest(Test):
        __a = "change __a"
    
    st = SubTest()
    print(dir(st))

    执行结果如下,如果在子类中重新定义__a时,会重新生成一个_SubTest__a,这样避免了父类中的_Test__a被改写。

    除了_Test__a,还有_SubTest__a

    2.4 双前缀+双后缀下划线

    与双前缀下划线不同,双前缀+双后缀下划线并不会对名字进行改写。这些使用了双前缀+双后缀下划线的对象又被称为dunders,即Double UNDERScores的缩写。

    魔法函数

    __double_leading_and_trailing_underscore__: “magic” objects or attributes that live in user-controlled namespaces. E.g.  __init____import__ or  __file__. Never invent such names; only use them as documented.

    双前缀+双后缀下划线常用于“魔法函数”,表明这些函数被“官方占用”,不建议自行定义一个双前缀+双后缀下划线的对象,因为有可能与“官方用法”产生冲突。

    模块

    Module level “dunders” (i.e. names with two leading and two trailing underscores) such as __all__, __author__, __version__, etc. should be placed after the module docstring but before any import statements  except from__future__imports. Python mandates that future-imports must appear in the module before any other code except docstrings:

    除了魔法函数,一些模块也使用了双前缀+双后缀下划线,如__future__。Python要求的导入顺序是:__future__的import放在最前,然后是dunders的import,最后是普通的import。其中__future__的import强制放在最前,否则会报错。

    """
    This is a demo! 这种docstrings放在最前
    """
    
    from __future__ import barry_as_FLUFL
    
    __all__ = ["test"]
    __version__ = '0.1'
    __author__ = 'Mr. Cheng'
    
    import pandas as pd

    3. 其他用法

    3.1 单独一个下划线

    当我们需要一个变量,但是又不需要在后面的程序中调用这个变量时,就可以用_,相当于告诉大家:这个变量无关紧要。最典型的例子就是用于for循环,如

    for _ in range(10):
        print("打印10次!")

    也可以用作占位符对可迭代对象进行拆分,如

    a, _, _, c = (1, 2, 3, 4)
    a, _, _, c = [1, 2, 3, 4]

    3.2 数字分隔符

    在会计中,我们用逗号对较大的数字进行分隔,以方便识别,如93,123,110。但是在Python中,显然不能用逗号,但是可以用下划线,如:

    a = 93_123_110

    3.3 IPython中的特殊用途

    在iPython中,下划线还有一个特殊用途:用以指代最近一个表达式的输出结果。如

    在学编程,学Python的小伙伴们,一个人摸黑学会很难,博主也是过来人, 这里新建了一个扣群:1020465983,给大家准备了学习资源、好玩的项目,欢迎大家加入一起交流。

    展开全文
  • scala中下划线的几种含义

    千次阅读 2020-10-24 21:11:00
    1. 将方法转变为函数 2. 表示集合里的每个元素 3. 获取元组Tuple中的元素 4. 模式匹配 5. 队列匹配 6. 通配符 7. 变长参数 8. 初始化变量

    目录

    1. 将方法转变为函数

    2. 表示集合里的每个元素

    3. 获取元组Tuple中的元素

    4. 模式匹配

    5. 队列匹配

    6. 通配符

    7. 变长参数

    8. 初始化变量


    1. 将方法转变为函数

    def method1(x:Int,y:Int)=x*y
    val func1=method1 _   // 注意这里的空格
    method1(2,3)
    func1(2,3)
    //    res: Int = 6

    2. 表示集合里的每个元素

    val list1=List(1,2,3,4)
    val list2=list1.map(_ * 10)
    //    list2: List[Int] = List(10, 20, 30, 40)
    
    //  用_分别表示二元函数中的参数x和y
    List(10, 5, 8, 1, 7).sortWith(_ < _)
    //    res: List[Int] = List(1, 5, 7, 8, 10)

    3. 获取元组Tuple中的元素

    val t=("wyk",1.23,100)
    println(t._1) // wyk
    println(t._2) // 1.23
    println(t._3) // 100

    4. 模式匹配

    包括字符串匹配、类型匹配、数组匹配、集合匹配和元组匹配

    val word="wyk"
    val result =word match{
      case "wyk" => 1
      case "csdn" => 2
      case _ => 0 // 以上都没有匹配到才会被执行
    }
    
    // 通过模式匹配获取元组的元素,当不需要某个值的时候可以使用_替代,例如
    val t1 = (1, 1.23, "wyk")
    val (first, second, _) = t1  
    // 此时新定义了两个常量 first second
    //    first: Int = 1
    //    second: Double = 1.23

    5. 队列匹配

    val list=List(1,2,3,4)
    list match{
      case List( _,_* ) =>1  // List(_,_*)表示匹配以任意开头,任意数量的列表。其他类似的有:List(3,x,y) 匹配3开头,共3个元素的list。  List(3,_*) 匹配3开头,任意数量的list。
      case _ =>2  //除此之外 匹配此处
    }

    6. 通配符

    //导包引入,表示引入的时候将 scala.collection.mutable 包下面所有的类都导入
    import scala.collection.mutable._
    

    7. 变长参数

    def sum(args: Int*) = {
      var result = 0
      for (arg <- args) result += arg
      result
    }
    
    val s1 = sum(1,2,3,4,5)
    // 等效于
    val s2 = sum(1 to 5: _*)
    

    8. 初始化变量

    // 在这里, age 也可以声明为 0 ,例: var age:Int=0 。这里的下划线和 0 的作用是一样的。
    var age:Int=_   
    // 在这里, name 也可以声明为 null ,例: var name:String=null 。这里的下划线和 null 的作用是一样的。
    var name:String= _  

     希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

    展开全文
  • 数字的管道和下划线表示的文本文件解析器。 接受以下格式的数字 0 - 9: _ _ _ _ _ _ _ _ | | | _| _||_||_ |_ ||_||_| |_| ||_ _| | _||_| ||_| _| 输入文件中的每个条目应该有 4 行长,每行应该有 27 个...
  • 下划线什么

    2021-07-17 06:09:10
    下划线什么下划线什么?下划线就是字下面所划的线条。一般大家用在名字的输入中,(只可以输入数字,字母,下划线)而在一些文档(如WORD)中,下划线常被用作增强注意。而在网页中,可以连接的文字(超链接)下面一般...

    下划线是什么

    下划线是什么?下划线就是字下面所划的线条。一般大家用在名字的输入中,(只可以输入数字,字母,下划线)而在一些文档(如WORD)中,下划线常被用作增强注意。而在网页中,可以连接的文字(超链接)下面一般都有下划线。

    a6a20123edc8f3d088d7ed1d8b202a73.png

    键盘打法

    英文半角输入时同时按住键盘上的 SHIFT 和 - 就可以打出不含任何文字的下划线,这种打法适合所有的软件。但这不是一条实际意义上的下划线。真正的下划线用来标注重要或引人注意的文字,也叫底线Underscore)。

    a6a20123edc8f3d088d7ed1d8b202a73.png

    写字板打法

    写字板不比记事本,后者只能处理最为简单的文本形式,而无法对文字进行格式方面的修饰,如加下划线等等。但是在写字板中却可以对文字加入特殊的样式,比如加粗,斜体,或加下划线,插入图片等稍微复杂的修饰,那么在写字板中,在使用写字板时下划线怎么打呢?其实,在写字板里面打出下划线的操作也非常简单,如下示例。

    1、打开写字板,直接在运行里面输入命令write回车可以了。

    2、打开写字板以后,按住鼠标左键,托动并选定文字,此时的文字呈黑底状态,此时使用快捷键CTRL+U,就可以给你选中的文字打出下划线的修饰了。当然也可以使用常用工具栏里的“下划线”工具了。

    word中的打法

    1、首先,打开word应用程序,选中自己想要加下划线的文字。选择文字的方法与在写字板中选择文字是一样的了。

    2、选择“格式”菜单,“字体”子菜单,选择后,就可以对下划线进行相关的设置了,如下图所示,设置好以后,点击“确定”就可以给你的文字打上下划线了。

    a6a20123edc8f3d088d7ed1d8b202a73.png

    a6a20123edc8f3d088d7ed1d8b202a73.png

    3、最简单的方法是输入文字后点击顶部工具栏的 U 形按钮。

    关于下划线是什么的问题介绍到这里,希望对大家有所帮助。

    展开全文
  • 编程中的下划线什么意思?

    千次阅读 2021-05-22 17:44:49
    下划线在C没有特殊含义。一般在命名变量和方程用作断字符:integerarray,这样命名变量会很难看,一般会:integerArray 或者integer_array这样命名。一些程序包会经常看到:__Macro_A__ab。这类的变量命名原因是为了...
  • MYSQL:下划线(_)通配符

    千次阅读 2020-04-07 16:02:49
    数据总览: 下划线可以匹配单个字符,而%是匹配多个字符。 例子 SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '__ inch teddy bear';
  • 下划线可是很有用处的哟,比如变量,有些是一个下划线开头的(_xx),有些是两个下划线开头的(__xx),有些是在名称的结尾添加下划线的(xx_),还有一些方法我们常常看到两个下划线开头和结尾的(__xx__) 等等…为什么要...
  • 在阅读Python代码时,经常看到函数名称前后有下划线的情况,一般存在如下三种情况,下面对下划线的作用做一个简单小结。 1.函数名前单下划线 _function 该类函数不是API的一部分,所以该函数只有类和子类能够访问...
  • python中的标识符命名规则和C/C++不一样,可以单个下划线_成为一个变量标识符。 _=1 _ 一般看到别人的代码用这个来作为标识符,就表示这个是一个无关紧要的变量,但是又一定要有一个变量来承接。例如: def hello...
  • 下划线下划线用作变量 最常见的一种使用场景是作为变量占位符,使用场景明显可以减少代码中多余变量的使用。为了方便理解,_可以看作被丢弃的变量名称,这样做可以让阅读你代码的... 这表示这是一个保护成员(属性
  • python不仅用奇特的空格表示代码块,还用变量和函数命名中的下划线表示一些特殊含义。 ①_单下划线开头:弱 内部使用表示,如“from M import *”,将不导入所有下划线开头的对象,包括包、模块、成员 ②单...
  • 主要介绍了详解Golang中下划线的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 比如_id=id;两个id什么区别
  • 页卡滑动标题固定位置以标题颜色与下划线表示当前页卡所在位置.rar
  • 主要介绍了Python中下划线的使用方法,是为python编程学习中的基本知识,需要的朋友可以参考下
  • 页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip项目安卓应用源码下载页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 ...
  • 页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置源代码,是一个很不错的Android源码,有兴趣的伙伴们抽时间可以看一下把
  • 关于域名用下划线的一个问题

    千次阅读 2018-12-11 15:21:51
    什么问题呢: 网络请求失败,报错:java.lang.IllegalArgumentException: Invalid input to toASCII: t_art***.hun***.cn 这里的t_art***.hun***.cn 是请求的域名。很明显,域名有下划线。 这样的用法是不规范的,....
  • python中的下划线含义

    2021-01-29 04:47:57
    下划线和双下划线在Python变量和方法名称中都有含义。其中一些含义仅仅是按照惯例,作为给程序员的提示,而另外一些则由Python解释器执行。在本文中,主要讨论以下五种下划线模式和命名约定,以及它们如何影响...
  • 安卓开发-页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置
  • Android应用源码之页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip项目安卓应用源码下载Android应用源码之页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip项目安卓应用...
  • Android应用源码之页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip
  • 安卓Andriod源码——页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip
  • 安卓Android源码——页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.zip
  • 安卓Android源码——页卡滑动,标题固定位置,以标题颜色与下划线表示当前页卡所在位置.rar

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,510
精华内容 109,004
关键字:

下划线表示什么