2.字符串 python中声明一个字符串通常有三种方法,''、" "和''' ''',这三种方法在声明普通字符串时的效果是完全一样的,区别在于字符串本身中存在引号的情况,举例如下: word = 'good...在python中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 python中的标识符是区分大小写的。 以下划线开头的标识符是有特殊意义的。...以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入; 以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的...4.Python保留字符 下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。 所有Python的关键字只包含小写字母。 ?...a) 创建一个switch类,该类继承自Python的祖先类object。调用构造函数init( )初始化需要匹配的字符串,并需要定义两个成员变量value和fall。
Python的命名规范(其它编程语言也差不多) (1)不能以数字开头,不能出现中文。 (2)命名以字母开头,包含数字,字母(区分大小写),下划线。 (3)不能包含关键字,见名知意。...下面具体说说Python的命名规范: 1、类 单词首字母总是大写,私有类可以下划线开头。如MyClass。...class MyClass(): pass class MySchool(): pass 2、函数 函数名一律小写,若有多个单词用下划线隔开。另外,私有函数下划线开头 。...前导后缀下划线 一个前导下划线:表示非公有。 一个后缀下划线:避免关键字冲突。 两个前导下划线:当命名一个类属性引起名称冲突时使用。...两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。 注意:关于下划线的使用存在一些争议。
前带两个_ ,后带两个_ 的变量: 标明是内置变量, func_path = os.path.dirname(os.path.abspath(__file__))3....大写加下划线的变量: 标明是 不会发生改变的全局变量函数:1. 前带_的变量: 标明是一个私有函数, 只用于标明,2....因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有 的”,在模块或类外不可以使用。...以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的...同时也应该注意一般函数不要使用两个前导下划线(当遇到两个前导下划线时,Python 的名称改编特性将发挥作用)。特殊函数后面会提及。
def __init__(self, name, age, gender): # 这是实例属性,外部可以直接访问 self.name = name # 两个下划线开头是私有属性...__age = age # 一个下划线开头也表示私有属性,在外部可以直接访问,但不建议访问(为什么这样设计?) self...._gender = gender pass # 双下划线开头和结尾的是特殊方法或变量,不是私有的,外部可以访问 # 因此不要把方法或属性名定义为双下划线开头和结尾...__name__) # 内置attr函数使用 print(hasattr(s, "name")) print(getattr(s, "name")) # print(delattr...(cls.bar) cls().func1() # 调用 foo 方法 A.func2() # 不需要实例化 class C(object): @staticmethod
,因此,Go是通过字母大小写以及下划线开头来控制可见性的,大写字母开头表示能被其它包访问或调用(相当于 public),非大写开头表示只能在包内使用(相当于 private):package test_private_and_publicconst...(PubicVar = `大写变量开头,这是一个公开的常量`privateVar = `小写变量开头,这是一个私有的常量`_privateVar = `下划线开头, 这是一个私有的常量`)func...PubicFuc() {println(`这是一个公开的函数`)}func privateFuc() {println(`这是一个私有的函数`)}func _privateFuc() {println...(`这也是一个私有的函数`)}这样我们就可以把单例的结构体搞成小写的,这样外面引用的人只能使用我们的公开的构造函数去创建对象,而不会直接自己就可以new啦。...协程的切换是golang利用系统级异步 io函数的封装,这些封装的函数提供给应用程序使用,当这些异步函数返回 busy 或 bloking 时,golang 利用这个时机将现有的执行序列压栈,让线程去拉另外一个协程的代码来执行
有些时候,你会看到以一个下划线开头的实例变量名(两个下划线开头的也一样算,其实任何以下划线开头的都算),比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是...也就是说,默认呢,以一个下划线开始(不论结尾有没有下划线)的变量在外部都是可以直接访问的,但是不推荐这么做;以两个下划线开始和两个下划线结束的变量属于特殊变量,可以直接访问;而以两个下划线开始且结尾不是两个下划线...(可以没有也可以有一个下划线)的变量属于私有变量,不能直接访问,虽然可以通过其他方式访问,但最好不要在外部访问。...以及调用函数时如何传入可变参数和关键字参数的语法: 可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3)); 关键字参数既可以直接传入...参考阅读资料 python函数传递的是对象的引用值,非传值或传引用。
下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。 该约定在PEP 8中有定义。 这不是Python强制规定的。...双前导下划线 __var 到目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。 而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同了。...名称修饰会影响在一个类的上下文中,以两个下划线字符("dunders")开头的所有名称: class MangledMethod: def __method(self): return...它适用于在类上下文中使用的两个下划线字符开头的任何名称。 有很多要吸收的内容吧。 老实说,这些例子和解释不是从我脑子里蹦出来的。我作了一些研究和加工才弄出来。...__bam__ 42 但是,Python保留了有双前导和双末尾下划线的名称,用于特殊用途。 这样的例子有,__init__对象构造函数,或__call__ --- 它使得一个对象可以被调用。
做法:命名使用双下划线开头。 本质:障眼法,实际也可以访问。 私有成员的名称被修改为:_类名__成员名,可以通过 __dict__ 属性查看。...⭐️继承数据 子类如果没有构造函数,将自动执行父类的,但如果有构造函数将覆盖父类的。此时必须通过super()函数调用父类的构造函数,以确保父类实例变量被正常创建。...单继承:父类只有一个(例如 Java,C#)。 多继承:父类有多个(例如C++,Python)。 Object类:任何类都直接或间接继承自 object 类。...⭐️多继承 定义:一个子类继承两个或两个以上的基类,父类中的属性和方法同时被子类继承下来。...可以理解为按队列 多态 ⭐️重写内置函数 定义:Python中,以双下划线开头、双下划线结尾的是系统定义的成员。我们可以在自定义类中进行重写,从而改变其行为。 2.
因为平时写 js 用的是 tab 替换为两个空格, python 我看教程一般用的是四个空格缩进,就单独对 python 进行四个空格缩进设置了。 用户设置中添加如下代码: ......decoder import html_parser # 不推荐的模块名 import Decoder 类名 使用驼峰(CamelCase)命名风格 首字母大写 私有类可用一个下划线开头 class...def func(): pass def func_with_some(): pass class Person(): # 私有函数 def _private_func...z 组合键并敲击 enter 获取帮助 如果你需要获得 Python 中有关任何函数或语句的快速信息,你可以使用其内置的 help 功能。...例如,运行 help('len') 命令——这将显示出有关 len 函数的帮助,了解其是用来计算项目数量的。 按下 q 键可以退出帮助。
这是对程序员的提示,它意味着Python同意它的含义,但不影响程序的行为。 下划线前缀是向其他程序员的提示,即以单个下划线开头的变量或方法供内部使用。此约定在PEP 8中定义。...双首下划线: __var 到目前为止,我们所讨论的命名模式仅从约定的约定中获得它们的含义。对于以双下划线开头的Python类属性(变量和方法),情况略有不同。...所有以两个下划线字符(“dunders”)开头的名字都会受到名字混乱的影响: class MangledMethod: def __method(self): return 42...Python解释器会自动将名称解析扩展为_mangledglobalmangled,因为它以两个下划线字符开头。这证明了名称混乱并不是特定地与类属性绑定在一起的。...它适用于在类上下文中以两个下划线开头的任何名称。 双重领先和落后强调: __var__ 根据约定,一个单独的下划线有时用作一个名称,表示一个变量是临时的或是不重要的。
单个函数的接口名以 er 作为后缀,例如 Reader,Writer。...err error) } 两个函数的接口名综合两个函数名。...const appVersion = "1.0.0" 方法接收器命名 推荐以类名第一个英文首字母的小写作为接收器的命名。 接收器的命名在函数超过20行的时候不要用单字符。...如果有多个错误场景停止程序执行,请将该逻辑放在单独的函数下并从中返回错误。 这会精简main()函数,并将所有关键业务逻辑放入一个单独的、可测试的函数中。...测试用例的函数名称必须以 Test 开头,例如 TestExample。 单测文件行数限制是普通文件的 2 倍(1600 行)。单测函数行数限制也是普通函数的2倍(160行)。
在 Go 中,有不同的变量类型,例如: int 存储整数(整数),例如123或-123 float32 存储浮点数字,带小数,例如19.99或-19.99 string - 存储文本,例如“ Hello...字符串值用双引号括起来 bool 存储具有两个状态的值:true或false 声明(创建)变量 在Go中,有两种声明变量的方法: 使用var关键字: 使用var关键字,后跟变量名称和类型: 语法 var...没有初始值的变量声明 在Go中,所有变量都已初始化。...Go变量命名规则: 变量名称必须以字母或下划线字符( _)开头 变量名称不能以数字开头 变量名称只能包含字母数字字符和下划线(a-z,A-Z,0-9和_) 变量名称区分大小写(age,Age和AGE是三个不同的变量...有几种技术可用于使它们更易于阅读: 驼峰命名法 每个单词,除了第一个单词以外,都以大写字母开头: myVariableName = "John" 帕斯卡命名法 每个单词以大写字母开头: MyVariableName
下划线前缀的含义是告知其他程序员:以单个下划线开头的变量或方法仅供内部使用。该约定在PEP 8中有定义。 这不是Python强制规定的。...双前导下划线 __var 到目前为止,我们所涉及的所有命名模式的含义,来自于已达成共识的约定。而对于以双下划线开头的Python类的属性(包括变量和方法),情况就有点不同了。...名称修饰会影响在一个类的上下文中,以两个下划线字符("dunders")开头的所有名称: class MangledMethod: def __method(self): return...它适用于在类上下文中使用的两个下划线字符开头的任何名称。 有很多要吸收的内容吧。 老实说,这些例子和解释不是从我脑子里蹦出来的。我作了一些研究和加工才弄出来。...__bam__ 42 但是,Python保留了有双前导和双末尾下划线的名称,用于特殊用途。这样的例子有,init__对象构造函数,或__call --- 它使得一个对象可以被调用。
这会缩短 main()函数,并将所有关键业务逻辑放入一个单独的、可测试的函数中。 package main func main() { if err := run(); err !...0的切片(一个为nil,另一个不是),并且在不同的情况下(例如序列化),这两个切片的处理方式可能不同。...如果是私有结构体类型或是要实现 Mutex 接口的类型,我们可以使用嵌入 mutex 的方法: // 1.为私有类型或需要实现互斥接口的类型嵌入。...test.go结尾,并且测试函数命名也有要求,单元测试必须以Test开头后接测试函数名(注意首字母大写),而基准(性能)测试必须以Benchmark开头后接函数名, 而示例函数必须以Example开头后接函数名称...如果您比较两个时间瞬间,则差异将不包括这两个瞬间之间可能发生的闰秒。
例如: package main 2.2 非 main包的 main 函数 除了 main 包外,其他包也可以拥有自己的名为 main 的函数或方法。...如果一个标识符以大写字母开头,它就是可导出的(公有的),可以被其他包访问。如果以小写字母开头,它就是包内私有的,只能在包内部使用。...4.3 下划线在import中 当导入一个包时,该包下的文件里所有init()函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。...首先,main 包依赖 pkg1 和 pkg4 两个包,所以第一步,Go 会根据包导入的顺序,先去初始化 main 包的第一个依赖包 pkg1。...此外,main 包的两个 init 函数,会按照在源文件 main.go 中的出现次序进行调用。根据 Go 语言规范,一个被多个包依赖的包仅会初始化一次,因此这里的 pkg3 包仅会被初始化了一次。
当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。...双下划线开头的为私有属性或私有方法。所有方法的第一个参数都为self 3. __call__ 允许一个类的实例像函数一样被调用。实质上说,这意味着 x() 与 x.__call__() 是相同的。...简单而言,partial 函数的功能就是:把一个函数的某些参数给固定住,返回一个新的函数。...: Callable # 参数为可调用的函数 对于返回值的typehint,示例如下: def myadd(a: int, b: int) -> int: return a+b 13.......只能用于numpy的数组,而不能用于python自带的list 它是省略所有的冒号来用省略号代替,a[:, :, None]和a[…, None]的输出是一样的,就是因为…代替了前面两个冒号。
四、空格 1.括号等之后的空格:避免紧跟在括号、中括号和大括号之后的空格,例如:func( list_[ 1 ], { 'age': 18 })。...应该省去不必要的空格func(list_[1], {'age': 18}) 2.逗号等之前的空格:避免紧跟在逗号、分号和冒号之前的空格,例如:a , b = b , a。...#)来分隔不同意思的段落 3.代码行之后的注释:应该与前面的代码间隔至少两个空格,然后也是以使用一个#和一个空格开始,但是这种注释应该尽量少用,不必要的话就不用 4.文档注释:应该为所有公共的模块、函数...Python内部关键字冲突的一种约定 6.双下划线开头:当在类中以双下划线开头定义时,调用它的时候会在前面加上“_ClassName”,如调用类A中的属性__a时,__a就变成了_A__a,这样子类就不可以随便调用这个属性了...import *”的xxx模块中的全局变量应该使用单下划线开头防止内部接口或变量的对外暴露 15.实例变量:非公有方法和实例变量使用单下划线开头(“protected”),双下划线开头会触发Python
import "fmt" // 导入需要使用的包(的函数,或其他元素) func main() { // 程序的入口函数。...当函数、结构等标识符以一个大写字母开头,如:GetInfo,那么使用这种形式的标识符的对象就可以被外部包的代码所使用,这被称为导出(像面向对象语言中的 public);标识符如果以小写字母开头,则对包外是不可见的...// 公有函数,可以被外部包的代码所使用 func Test() { . . . } // 私有函数,包的内部是可见、 func test2() { . . . }...一个标识符实际上就是一个或是多个字母(A~Z和a~z)数字(0~9)、下划线_组成的序列,但是第一个字符必须是字母或下划线而不能是数字。...以下是无效的标识符: 1ab(以数字开头) case(Go 语言的关键字) a+b(运算符是不允许的) 6.
领取专属 10元无门槛券
手把手带您无忧上云