本人python小白,记录一些编程过程中遇到的错误或知识!没有顺序可言,学到哪里记录到哪里。(参考了网络资料并结合了自己的理解)
1. python中__all__含义和用法 1.1 基本格式__all__=['xx','xxx','xxxx']1.2 含义
它属于python中的变量,该变量是一个列表,存储了当前模块中的一些成员(变量、函数或类)的名称。当其他文件仅以from 模块名 import *形式导入该模块时,表示只能使用该列表中指定的成员。注意,以下两种情况__all__用法失效。
- 1)以import 模块名 形式导入模块后,通过模块名前缀来调用模块内的成员;
- 2)以from 模块名 import 成员 的形式导入指定成员。
#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 World2. python中__init__ 的含义和用法 2.1 基本格式
class Book: def __init__(self, n, p): self.name = n self.page = p2.2 含义
init是单词initialization(初始化)的缩写,是一种特殊的构建方法,形参有self, n, p三个。self表示对象本身,self.name = n和self.name = p表示将n和p赋值给self对象的name和page属性;
- 类中的第一个参数都为self,每个类中基本都要定义一个__inin__()方法,加不加这个方法区别如下:没有定义__init__的类,虽然也能输出结果,但是当多个参数赋值时会异常繁琐,对读者不友好;而定义了__init_的类,每个实例都有自己的属性,方便调用类中的函数,为了编程和读者方便。
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



