标签:new his 文件 each setname from 补充 package 根据
目录
模块直接导入
语法
import module_name
module_name.class_name
module_name.function_name
import module_name
"""
保存为 student.py
包含:
Student 类
sayhello()
print 语句
"""
class Student(object):
def __init__(self, name="NoName", age=18):
self.name = name
self.age = age
def say(self):
print("My name is {0}.".format(self.name))
def say_hello():
print("Hi, this module's name is 'student'.")
if __name__ == "__main__":
print(">>> module Student") # 类似的语句,建议写此处
import student
stu = student.Student("Tom")
stu.say()
print(stu.age)
student.say_hello()
if __name__ == "__main__"
的使用
import importlib
"""
保存为 01_student.py
包含:
Student 类
sayhello()
"""
class Student(object):
def __init__(self, name="NoName", age=18):
self.name = name
self.age = age
def say(self):
print("My name is {0}.".format(self.name))
# import 01_student # SyntaxError: invalid token
import importlib
# 相当于导入了一个叫 01_student 的模块,并将该模块赋值给了 new
new = importlib.import_module("01_student")
stu = new.Student()
stu.say()
import module_name as new_name
import student as st
stu = st.Student("Jerry", 17)
stu.say()
print(stu.age)
st.say_hello()
from module_name import class_name, func_name
from student import Student, say_hello
stu = Student("Tom")
stu.say()
print(stu.age)
say_hello()
from module_name import *
from student import *
stu = Student("Tom")
stu.say()
print(stu.age)
say_hello()
import sys
# sys.path 属性可以获取路径列表
print(type(sys.path))
print(sys.path)
for p in sys.path:
print(p)
sys.path.append(dir)
|---包
|---|--- __init__.py 包的标志文件
|---|--- 模块1
|---|--- 模块2
|---|--- 子包(子文件夹)
|---|---|--- __init__.py 包的标志文件
|---|---|--- 子包模块1
|---|---|--- 子包模块2
import package_name
可以使用 __init__.py
中的内容,但 __init__.py
中一般为空
文件结构
|---pkg1
|---|--- __init__.py
|---|---
|---use_pkg1.py
# save as __init__.py
def in_init():
print("I am in init of package.")
# save as use_pkg1.py
import pkg1
pkg1.in_init()
import package_name as new_name
import module_name as new
用法一致__init__.py
内容的导入# save as use_pkg2.py
import pkg1 as p
p.in_init()
import package_name.module_name
|---pkg1
|---|--- __init__.py
|---|--- student.py
|---|---
|---use_pkg3.py
# save as use_pkg3.py
import pkg1.student
stu = pkg1.student.Student("Tom")
stu.say()
print(stu.age)
pkg1.student.say_hello()
from package_name import module_name
__init__.py
中的内容# save as use_pkg4.py
from pkg1 import student
stu = student.Student("Tom")
stu.say()
print(stu.age)
student.say_hello()
from package import module1, module2, module3, ...
from package_name import *
导入当前包 __init__.py
文件中所有的类和函数
from package_name.module import *
from package import *
的时候,* 可以导入的内容与 __all__
有关__init__.py
中没有内容,或没有 __all__
,则只能导入 __init__
中的内容若 __init__.py
设置了__all__
的值,那么按照 __all__
指定的子包或者模块进行加载,此时不会载入__init__
中的其他内容
文件结构
|---pkg1
|---|--- __init__.py
|---|--- student.py
|---|---
|---use_pkg.py
# save as __init__.py
__all__ = ['module1', 'module2', 'package1', ...]
def in_init():
print("I am in init of package.")
# save as use_pkg.py
from pkg1 import *
stu = student.Student("Tom")
stu.say()
print(stu.age)
student.say_hello()
import 包或者模块的绝对路径
setName()
Student.setName()
Teacher.setName()
标签:new his 文件 each setname from 补充 package 根据
原文地址:https://www.cnblogs.com/yorkyu/p/12013265.html