收藏 分享(赏)

Python学习心得.doc

上传人:精品资料 文档编号:9940003 上传时间:2019-09-21 格式:DOC 页数:15 大小:53.49KB
下载 相关 举报
Python学习心得.doc_第1页
第1页 / 共15页
Python学习心得.doc_第2页
第2页 / 共15页
Python学习心得.doc_第3页
第3页 / 共15页
Python学习心得.doc_第4页
第4页 / 共15页
Python学习心得.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、.0、命令行常用命令命令行(Windows 下叫“命令提示符”,Mac 下叫“终端”)里的常用命令。打开命令行,我们会看到每行前面都有诸如C:Documents and SettingsCrossin或者MyMacBook: crossin$之类的。这个提示符表示了当前命令行所在目录。第一个常用的命令是:dir (windows 环境下)ls (mac 环境下)dir 和 ls 的作用差不多,都是显示出当前目录下的文件和文件夹。第二个常用命令是:cd 目录名通过 dir 或 ls 了解当前目录的结构之后,可以通过“cd 目录名”的方式,进入到当前目录下的子目录里。如果要跳回到上级目录,可以用命

2、令:cd 另外,Windows 下如果要写换盘符,需要输入盘符:比如从 c 盘切换到 d 盘 C:Documents and SettingsCrossind:有了以上两个命令,就可以在文件目录的迷宫里游荡了。虽然没可视化的目录下的操作那么直观,但是会显得你更像个程序员。于是乎,再说个高阶玩法:现在你可以不用 idle 那套东西了,随便找个顺手的文本软件,把你的代码写好,保存好,最好是保存成 py 文件。然后在命令行下进入到 py 文件保存的目录,使用命令:python 程序保存的文件名就可以运行你写的程序了。一、关于分号“;”在 C、Java 等语言的语法中规定,必须以分号作为语句结束的标识

3、。Python 也支持分号,同样用于一条语句的结束标识。但在 Python 中分号的作用已经不像 C、Java 中那么重要了,Python 中的分号可以省略,主要通过换行来识别语句的结束。例如,以下两行代码是等价的:.1. print “hello world!“2. print “hello world!“;第 1 行代码的输出结果:hello world!第 2 行代码的输出结果:hello world!如果要在一行中书写多条句,就必须使用分号分隔每个语句,否则 Python 无法识别语句之间的间隔:1. # 使用分号分隔语句 2. x=1; y=1 ; z=1第 2 行代码有 3 条赋值

4、语句,语句之间需要用分号隔开。如果不隔开语句,Python 解释器将不能正确解释,提示语法错误:SyntaxError: invalid syntax注意分号不是 Python 推荐使用的符号,Python 倾向于使用换行符作为每条语句的分隔,简单直白是 Python 语法的特点。通常一行只写一条语句,这样便于阅读和理解程序。一行写多条语句的方式是不好的习惯。二、关于连行符 “ ” (双反斜杠好像不可以,已测试)Python 同样支持多行写一条语句,Python 使用“”作为连行符。在实践中,一条语句写在多行也是非常常见的。【例】把 SQL 语句作为参数传递给函数,由于 SQL 的语句一般非常

5、长,为了阅读方便,因此需要换行书写。1. # 字符串的换行 2. # 写法一 3. sql = “select id,name 4. from dept 5. where name = A“ 6. print sql 7. # 写法二 8. sql = “select id,name “ 9. “from dept “ 10.“where name = A“11.print sql写法一只使用了一对双引号,把 SQL 语句分为 select、from、where 等 3 部分分别书写。第 6 行代码输出结果:select id,name from dept where name = A写法二使

6、用了 3 对双引号,select、from、where 分别对应一对双引号。第 11 行代码输出结果:select id,name from dept where name = A第二种写法比第一种写法的可读性更强,可以使用空格和制表符对齐语句,使代码显得更工整。对于简短的语句不推荐换行的写法,这种写法只会造成阅读的复杂性。下面这段程序是不合理的换行写法:1. # 一条语句写在多行 2. print 3. “hello world!“.第 2 行第 3 行代码是一个整体,调用 print 输出“hello world!”,这种情况不适合分行书写。三、关于单引号和双引号双引号和单引号都是可以用的

7、,只不过用单引号的时候可以在字符串里面使用双引号。同理,使用双引号时也可以在字符串里面使用单引号先说 1 个双引号与 3 个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 = “hello,world“ 如果要写成多行,那么就要使用(“连行符”),如 s2 = “hello, world“ s2 与 s1 是一样的。如果你用 3 个双引号的话,就可以直接写了,如下: s3 = “hello, world, hahaha.“,那么 s3 实际上就是“hello,n world,n hahaha.“, 注意“n”,所以, 如果你的字符串里n 很多,你又不想在字符串中用n 的话,那么就

8、可以使用 3 个双 引号。而且使用 3 个双引号还可以在字符串中增加注释,如下: s3 = “hello, #hoho, this is hello, 在 3 个双引号的字符串内可以有注释哦 world, #hoho, this is world hahaha.“这里我试过一下,确实可以加注释,不过在 print s3 的时候连注释内容会一起给打印出来这就是 3 个双引号和 1 个双引号表示字符串的区别了,3 个双引号与 1 个单引号的区别也 是和这个一样的,实际上 python 支持单引号是有原因的,下面我来比较 1 个单引号和 1 个双引号的区别。 当我用单引号来表示一个字符串时,如果要表

9、示 Lets go 这个字符串,必须这样: s4 = Lets go,注意没有,字符串中有一个,而字符串又是用来表示,所以 这个时候就要使用转义符 , 如果你的字符串中有一大堆的转义符,看起来肯定不舒服,python也很好的解决了这个问题,如下: s5 = “Lets go“ 对于双引号,也是一样的,下面举个例子 s6 = I realy like “python“! 这就是单引号和双引号都可以表示字符串的原因了。例子:(1)print (“Stay hungry,n“ #这里换行符n 必须写在双引号里面“stay foolish.n“- Steve Jobs“)(2)print (Stay

10、hungry, #这里用了三个单引号,没用换行符.stay foolish.- Steve Jobs)(3)print (“Stay hungry, #这里用了三个双引号,没用换行符stay foolish.- Steve Jobs“)这三个输出的结果都是三行:Stay hungry,stay foolish.- Steve Jobs(4)print (“Stay hungry, stay foolish. - Steve Jobs“)这个输出的结果是一行:Stay hungry, stay foolish. - Steve Jobs四、关于注释符用井号作为注释一行#此处为注释一般用“(三个英

11、文引号)也可以注释多行,不过一般用来表示函数文档“此处是注释此函数功能为。“五、逻辑量 True 和 False 首字母必须大写 Python 中的 None:None 是一个特殊的常量。None 和 False 不同。None 不是 0。None 不是空字符串。None 和任何其他的数据类型比较永远返回 False。None 有自己的数据类型 NoneType。你可以将 None 复制给任何变量,但是你不能创建其他 NoneType 对象。六、if 语句,ifelifelse 语句,while 循环,for 循环, break 和 continueif 条件: #注意冒号必须有选择执行的语句

12、 #注意这里有四个空格的缩进.if, elif, else 可组成一个整体的条件语句:if 是必须有的;elif 可以没有,也可以有很多个,每个 elif 条件不满足时会进入下一个 elif判断;else 可以没有,如果有的话只能有一个,必须在条件语句的最后。if a = 1:print oneelif a = 2:print twoelse:print too manywhile 条件: #注意冒号必须有选择执行的语句 #注意这里有四个空格的缩进for i in range(1, 101): #i 从 1 取到 100print i注:range(x, y, c)表示一个 list:x, x

13、+c, x+2c, , y-c。如果没有第三个参数 c, 默认 c=1.breakwhile 循环在条件不满足时 结束,for 循环遍历完序列后 结束。如果在循环条件仍然满足或序列没有遍历完的时候,想要强行跳出循环,就需要用到 break 语句。continuebreak 是彻底地跳出循环,而 continue 只是略过本次循环的余下内容,直接进入下一次循环。七、 变量命名规则python 在定义一个变量时不需要给它限定类型 。变量会根据赋给它的值,自动决定它的类型。你也可以在程序中,改变它的值,于是也就改变了它的类型。变量命名时第一个字符必须是字母或者下划线“_” , 剩下的部分可以是字母、

14、下划线“_”或数字(0-9)变量名称是对大小写敏感的,myname 和 myName 不是同一个变量。八、字符串的输出和运算字符串之间可以通过加法连接起来:str1 = goodstr2 = byeprint (str1 + str2)print (very + str1)print (str1 + and + str2)print (My age is + str(18)num = 18print (My age is %d %num) #注意,%num 可以直接用%18 代替,但是%num 和字符串之间不能加逗号,只能是空格(没有空格也可以)print (Today is %s. % Fr

15、iday).print (Price is %.2f % 4.99)注意:%d 表示整数,%s 表示字符串,%f 表示浮点数,%.4f 表示带 4 位小数的浮点数print (“%ss score is %d“ % (Mike, 87))无论你有多少个值需要代入字符串中进行格式化,只需要在字符串中的合适位置用对应格式的%表示,然后在后面的括号中按顺序提供代入的值就可以了。占位的% 和括号中的值在数量上必须相等,类型也要匹配。(Mike, 87)这种用() 表示的一组数据在 python 中被称为元组(tuple) ,是 python 的一种基本数据结构,以后我们还会用到。九、变量强制类型转换i

16、nt(x) #把 x 转换成整数float(x) #把 x 转换成浮点数str(x) #把 x 转换成字符串bool(x) #把 x 转换成 bool 值例如,以下等式的结果均为真:int(123) = 123float(3.3) = 3.3str(111) = 111bool(0) = Falsebool(abc) = Truebool(False) = Truebool() = False并不是所有的值都能做类型转换,比如 int(abc)同样会报错,python 没办法把它转成一个数。关于 bool 类型的转换,在 python 中,以下数值会被认为是 False:为 0 的数字,包括

17、0,0.0空字符串,包括,“表示空值的 None (None 是 python 中的一个特殊值,表示什么都没有,它和 0、空字符、False、空集合都不一样)空集合,包括(), ,其他的值都认为是 True。十、函数如果我们要写一个函数,就需要去定义它。Python 里定义函数的关键字是 def,格式如下:def sayHello():print hello world!我们用 sayHello()来调用这个函数。 (注意括号必须带着)return 是函数的结束语句,return 后面的值被作为这个函数的返回值。函数中任何地方的return 被执行到的时候,这个函数就会结束。十一、list 列

18、表格式:用中括号包围、逗号隔开的一组元素;列表中的元素可以是不同的类型。.例如,range(1,10) 或者1, 2, 3, 4, 5, 6, 7, 8, 9;I = 365, everyday, 0.618, True。操作 list:1. 访问 list 中的元素python 计数是从 0 开始,例如 I0=365, I1= everyday2. 修改 list 中的元素修改 list 中的某一个元素,只需要直接给那个元素赋值就可以了:l0 = 123注意如下例子:c=1,2,3b=ca=cb0=2print a 得到 a=2,2,3特别注意:如果用一个 list 赋值给另一个 list,

19、但是想要改变一个 list 的时候另一个不变,这时需用如下赋值方法: a=1,2b=b0 : len(a)=a0 : len(a)b.append(3)print a 得到1,2print b 得到1,2,33. 向 list 中添加元素list 有一个 append 方法,可以增加元素。以 I 这个列表为例,调用的方法是:I.append(1024) #注意这里是小括号输出 I,你会看到123, everyday, 0.618, True, 1024,1024 被添加到了 I,成为最后一个元素。 (第一个元素在上一步被改成了 123。 )然后同样可以用 I4得到 1024。4. 删除 lis

20、t 中的元素删除 list 中的某一个元素,要用到 del:del I0,然后输出 I,得到everyday, 0.618, True, 1024 。这时候再调用 I0,会得到everyday,其他元素的序号也相应提前。例子,#= 点球小游戏 =#from random import choiceprint Choose one side to shoot:print left, center, rightyou = raw_input()print You kicked + youdirection = left, center, rightcom = choice(direction)pr

21、int Computer saved + comif you != com:print Goal!else:print Oops.5. 求和:例如 sum(1,2,3)=6, sum(range(101)=5050.list 有两类常用操作:索引(index)和切片(slice)。用加序号访问的方法就是索引操作。除了指定位置进行索引外, list 还可以处理负数的索引,例如 I-1表示 l 中的最后一个元素,l-3表示倒数第 3 个元素。切片操作符是在内提供一对可选数字,用冒号分割。冒号前的数表示切片的开始位置,冒号后的数字表示切片到哪里结束。同样,计数从 0 开始。注意,开始位置包含在切片中

22、,而结束位置不包括。例如,I = 365, everyday, 0.618, True,I1:3得到的结果是everyday, 0.618。如果不指定第一个数,切片就从列表第一个元素开始。如果不指定第二个数,就一直到最后一个元素结束。都不指定,则返回整个列表的一个拷贝。I:3 I1: I:同索引一样,切片中的数字也可以使用负数。比如:I1:-1 得到everyday, 0.618十二、字符串的索引和切片(类似 list 的操作)1. 遍历通过 for.in 可以遍历字符串中的每一个字符。word = helloworldfor c in word:print c2. 索引访问通过加索引的方式,

23、访问字符串中的某个字符。word0= hword-2= l与 list 不同的是,字符串不能通过索引访问去更改其中的字符。word1 = a 这样的赋值是错误的。3. 切片通过两个参数,截取一段子串,具体规则和 list 相同。print word5:7print word:-5print word:4. 连接字符join 方法也可以对字符串使用,与 list 的 join 用法类似。 ,.join(word)= h,e,l,l,o,w,o,r,l,d十三、字符串的分割 - list假设需要把一个句子中的每一个单词拿出来单独处理。sentence = I am an English sente

24、nce这时就需要对字符串进行分割: sentence.split()字符串.split()会把字符串按照其中的空格进行分割,分割后的每一段都是一个新的字符串,最终返回这些字符串组成一个 list。于是得到I, am, an, English, sentence除了空格外,split()同时也会按照换行符n ,制表符t 进行分割。所以应该说,split 默认是按照空白字符进行分割。.之所以说默认,是因为 split 还可以指定分割的符号。比如你有一个很长的字符串 section =Hi. I am the one. Bye. 通过指定分割符号为.,可以把每句话分开:section.split(.

25、)得到Hi, I am the one, Bye, 。这时候,. 作为分割符被去掉了,而空格仍然保留在它的位置上。注意最后那个空字符串。每个.都会被作为分割符,即使它的后面没有其他字符,也会有一个空串被分割出来。例如 aaa.split(a) 将会得到 , , , ,由四个空串组成的list。十四、连接 list-字符串join:和 split 正好相反,join 把一个 list 中的所有字符串连接成一个字符串,而split 是把一个字符串分割成很多字符串组成的 list。join 的格式有些奇怪,它不是 list 的方法,而是字符串的方法。首先需要有一个字符串作为 list 中所有元素的连

26、接符,然后再调用这个连接符的 join 方法,join 的参数是被连接的 list:例如:s = ; li = apple, pear, orange fruit = s.join(li) print fruit 得到结果apple;pear;orange。 又例如:.join(hello, world)得到helloworld,字符串被无缝连接在一起。十一*、元组 (tuple)元组(tuple)也是一种序列,和我们用了很多次的 list 类似,只是元组中的元素在创建之后就不能被修改。例如 position = (1, 2)geeks = (Sheldon, Leonard, Rajesh,

27、 Howard)都是元组的实例。它有和 list 同样的索引、切片、遍历等操作: 1. print postion02. for g in geeks:3. print g4. print geeks1:3其实我们之前一直在用元组,就是在 print 语句中: print %s is %d years old % (Mike, 23)(Mike, 23)就是一个元组。这是元组最常见的用处。再来看一下元组作为函数返回值的例子: 1. def get_pos(n):2. return (n/2, n*2)得到这个函数的返回值有两种形式,一种是根据返回值元组中元素的个数提供变量: 1. x, y =

28、 get_pos(50).2. print x3. print y这就是我们在开头那句代码中使用的方式。还有一种方法是用一个变量记录返回的元组: 1. pos = get_pos(50)2. print pos03. print pos1十五、读文件新建个文件,就叫它 data.txt。在里面随便写上一些话,保存。把这个文件放在接下来你打算保存代码的文件夹下,这么做是为了方便我们的程序找到它。打开一个文件的命令很简单:file(文件名)这里的文件名可以用文件的完整路径,也可以是相对路径。因为我们把要读取的文件和代码放在了同一个文件夹下,所以只需要写它的文件名就够了。f = file(data.

29、txt) #注意这里 f 不是字符串,是文件对象但这一步只是打开了一个文件,并没有得到其中的内容。变量 f 保存了这个文件,还需要去读取它的内容。你可以通过 read()函数把文件内所有内容读进一个字符串中。data = f.read() #这里 data 是字符串做完对文件的操作之后,记得用 close()关闭文件,释放资源。完整程序示例:f = file(data.txt)data = f.read()print dataf.close()读取文件内容的方法还有:readline() #读取一行内容readlines() #把内容按行读取至一个 list 中去替换程序的第二行,看看它们的区

30、别。十六、写文件打开文件的几种模式:python 默认是以只读模式打开文件。如果想要写入内容,在打开文件的时候需要指定打开模式为写入: f = file(output.txt, w)w就是 writing,以这种模式打开文件,原来文件中的内容会被你新写入的内容覆盖掉,如果文件不存在,会自动创建文件。不加参数时,file 为你默认为r,reading,只读模式,文件必须存在,否则引发异常。另外还有一种模式是 f = file(output.txt, a),其中a是 appending。它也是一种写入模式,但你写入的内容不会覆盖之前的内容,而是添加到文件中。打开文件还有一种方法,就是 open()

31、,用法和 file()是一致的。.写文件:写入内容的方法同样简单:f.write(a string you want to write)write 的参数可以是一个字符串,或者一个字符串变量。示例程序:data = I will be in a file.nSo cool!out = open(output.txt, w)out.write(data)out.close()在你的程序保存目录下,打开 output.txt 就会看到结果。类似的,writelines(list) #把 list 的每一个元素写成一行 没有 writeline(list)。十七、处理文件中的数据比如我现在拿到一份文

32、档,里面有某个班级里所有学生的平时作业成绩。因为每个人交作业的次数不一样,所以成绩的数目也不同,没交作业的时候就没有分。我现在需要统计每个学生的平时作业总得分。看一下我们的文档里的数据:#- scores.txt刘备 23 35 44 47 51关羽 60 77 68张飞 97 99 89 91诸葛亮 1001. 先把文件读进来:f = file(scores.txt)2. 取得文件中的数据。因为每一行都是一条学生成绩的记录,所以用 readlines,把每一行分开,便于之后的数据处理:lines = f.readlines()f.close()提示:在程序中,经常使用 print 来查看数据

33、的中间状态,可以便于你理解程序的运行。比如这里你可以 print lines,看一下内容被存成了什么格式。3. 对每一条数据进行处理。按照空格,把姓名、每次的成绩分割开:for line in lines:data = line.split() #这里 data 是 list接下来的 4、5 两个步骤都是针对一条数据的处理,所以都是在 for 循环的内部。4. 整个程序最核心的部分到了。如何把一个学生的几次成绩合并,并保存起来呢?我的做法是:对于每一条数据,都新建一个字符串,把学生的名字和算好的总成绩保存进去。最后再把这些字符串一起保存到文件中:sum = 0for score in data

34、1:sum += int(score).result = %st: %dn % (data0, sum)这里几个要注意的点:对于每一行分割的数据,data0是姓名,data1:是所有成绩组成的列表。每次循环中,sum 都要先清零。score 是一个字符串,为了做计算,需要转成整数值 int。result 中,我加了一个制表符t 和换行符n,让输出的结果更好看些。5. 得到一个学生的总成绩后,把它添加到一个 list 中。results.append(result) #这里 results 是 listresults 需要在循环之前初始化 results = 6. 最后,全部成绩处理完毕后,把

35、results 中的内容保存至文件。因为 results 是一个字符串组成的 list,这里我们直接用 writelines 方法:output = file(result.txt, w)output.writelines(results)outpus.close()十八、异常处理在 python 中,可以使用 try.except 语句来处理异常。做法是,把可能引发异常的语句放在 try-块中,把处理异常的语句放在 except-块中。例如:try:f = file(non-exist.txt)print File opened!f.close()except:print File not

36、exists.print Done十九、字典 dictionarypython 中的基本类型-字典(dictionary):字典这种数据结构有点像我们平常用的通讯录,有一个名字和这个名字对应的信息。在字典中,名字叫做“键(key)”,对应的内容信息叫做“值(value)”。字典就是一个键/值对的集合。键/值对用冒号分割,每个对之间用逗号分割,整个字典包括在花括号中。d = key1 : value1, key2 : value2 举个简单的字典例子:score = 萧峰: 95, 段誉: 97,虚竹: 89关于字典的键要注意的是:1.键必须是唯一的;2.键只能是简单对象,比如字符串、整数、浮点

37、数、bool 值。list 就不能作为键,但是 可以作为值。3.python 字典中的键/值对没有顺序,我们无法用索引访问字典中的某一项,而是要用键来访问。例如 print score段誉 或者 print score.get(段誉)。如果你的键是字符串,通过键访问的时候就需要加引号,如果是数字作为键则不用。注意,字典类的 get 方法是按照给定 key 寻找对应项,如果不存在这样的 key,就返回空值 None.4.字典也可以通过 for.in 遍历:for name in score:print scorename #这里要用中括号或者 print score.get(name) #这里要

38、用小括号注意,遍历的变量中存储的是字典的键。5.如果要改变某一项的值,就直接给这一项赋值: score虚竹 = 916.增加一项字典项的方法是,给一个新键赋值: score慕容复 = 887.删除一项字典项的方法是 del: del score萧峰注意,这个键必须已存在于字典中。8.如果你想新建一个空的字典,只需要: d = 二十、模块python 自带了功能丰富的标准库,另外还有数量庞大的各种第三方库。使用这些功能的基本方法就是使用模块。通过函数,可以在程序里重用代码;通过模块,则可以重用别的程序中的代码。模块可以理解为是一个包含了函数和变量的 py 文件。在你的程序中引入了某个模块,就可以

39、使用其中的函数和变量。来看一个我们之前使用过的模块: import randomimport 语句告诉 python,我们要用 random 模块中的内容。然后便可以使用 random 中的方法,比如:random.randint(1, 10)random.randchoic(1, 3, 5)注意,函数前面需要加上“random.”,这样 python 才知道你是要调用 random 中的方法。想知道 random 有哪些函数和变量,可以用 dir()方法:dir(random)如果你只是用到 random 中的某一个函数或变量,也可以通过 from.import.指明:from random

40、 import randint;from math import piprint pi等同于import mathprint math.pi为了便于理解和避免冲突,你还可以给引入的方法换个名字:from math import pi as math_piprint math_pi二十一、函数的默认参数之前我们用过函数,比如:def hello(name):print hello + name然后我们去调用这个函数:hello(world)程序就会输出: hello world如果很多时候,我们都是用 world 来调用这个函数,少数情况才会去改参数。那么,我们就可以给这个函数一个默认参数:de

41、f hello(name = world):.print hello + name当你没有提供参数值时,这个参数就会使用默认值;如果你提供了,就用你给的。这样,在默认情况下,你只要调用 hello()就可以输出 hello world同样你也可以指定参数:hello(python),输出 hello python注意,当函数有多个参数时,如果你想给部分参数提供默认参数,那么这些参数必须在参数的末尾。比如:def func(a, b=5)是正确的def func(a=5, b)就会出错二十二、数学运算python 的数学运算模块叫做 math,再用之前,需要import math1.math 包

42、里有两个常量:math.pi圆周率 :3.141592.math.e自然常数:2.718281.2.数值运算:math.ceil(x) 对 x 向上取整,比如 x=1.2,返回 2math.floor(x) 对 x 向下取整,比如 x=1.2,返回 1math.pow(x,y) 指数运算,得到 x 的 y 次方math.log(x)对数,默认基底为 e。可以使用第二个参数,来改变对数的基底。比如 math.log(100, 10)math.sqrt(x) 平方根math.fabs(x) 绝对值三角函数: math.sin(x)math.cos(x)math.tan(x)math.asin(x)

43、math.acos(x)math.atan(x)注意:这里的 x 是以弧度为单位,所以计算角度的话,需要先换算.角度和弧度互换: math.degrees(x) 弧度转角度math.radians(x) 角度转弧度以上是你平常可能会用到的函数。除此之外,还有一些,这里就不罗列,可以去http:/docs.python.org/2/library/math.html 查看官方的完整文档。二十三、类 class 和对象 objectclass Person:def _init_(self, name):self.name = namedef sayHi(self):print Hello, my name is, self.namep = Person(Swaroop)p.sayHi()_init_函数会在类被创建的时候自动调用,用来初始化类。它的参数,要在创建类的时候提供(所以定义 p 时 Person 后面的括号里有东西)注意:_init_前后各有两道下划线

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报