本人python小白,记录一些编程过程中遇到的错误或知识!没有顺序可言,学到哪里记录到哪里。(参考了网络资料并结合了自己的理解)
1. python中__all__含义和用法
1.1 基本格式
__all__=['xx','xxx','xxxx']
1.2 含义
它属于python中的变量,该变量是一个列表,存储了当前模块中的一些成员(变量、函数或类)的名称。当其他文件仅以from 模块名 import *
形式导入该模块时,表示只能使用该列表中指定的成员。注意,以下两种情况__all__用法失效。
- 1)以
import 模块名
形式导入模块后,通过模块名前缀来调用模块内的成员; - 2)以
from 模块名 import 成员
的形式导入指定成员。
1.3 例子
#test1.py
def talk():
print("Hello")
def say():
print("World")
__all__=['talk']
运行 test1.py 文件后,输出
Hello
但是以下两种情况,正常输出,__all__功能失效。
##test2.py
import test
test.talk()
test.say()
或
##test3.py
from test1 import talk
from test1 import say
talk()
say()
都正常输出
Hello
World
2. python中__init__ 的含义和用法
2.1 基本格式
class Book:
def __init__(self, n, p):
self.name = n
self.page = p
2.2 含义
init
是单词initialization(初始化)的缩写,是一种特殊的构建方法,形参有self, n, p
三个。self
表示对象本身,self.name = n
和self.name = p
表示将n和p赋值给self对象的name和page属性;
- 类中的第一个参数都为
self
,每个类中基本都要定义一个__inin__()
方法,加不加这个方法区别如下:没有定义__init__
的类,虽然也能输出结果,但是当多个参数赋值时会异常繁琐,对读者不友好;而定义了__init_
的类,每个实例都有自己的属性,方便调用类中的函数,为了编程和读者方便。
2.3 例子
B = Book('《我要努力学python》',1000)
表示给对象Book赋予了具体的书名《我要努力学python》
和页码1000
,并调用了__init__(self, n, p)
方法,对书的属性的初始化。《我要努力学python》
赋值给name
,1000
赋值给了page
属性。此时,self
表示初始化的对象B
。
可以用.
来调用对象的属性,如下
class Book:
def __init__(self, n, p):
self.name = n
self.page = p
B = Book('《我要努力学python》',1000)
print(B.name)
print(B.page)
输出
《我要努力学python》
1000
简单理解,self
就是外部对象在类内部的表示。
class Book:
def __init__(self, n, p):
self.name = n
self.page = p
def intro(self):
print("这本书叫%s, 大概有%d页” % (self.name, self.page))
B = Book('《我要努力学python》',1000)
B.intro() #调用intro方法中self,即外部对象B