Python---面向对象和模块

__all__ = ['add', 'number', 'calculate']

# 变量
number = 100
name = 'calculation'


# 函数
def add(*args):
    if len(args) > 1:
        sum = 0
        for i in args:
            sum += i
        return sum
    else:
        print("至少传入两个参数。。。")
        return 0


def minus(*args):
    if len(args) > 1:
        m = 0
        for i in args:
            m -= i
            return m
    else:
        print("至少传入两个参数。。。")


# 类
class Calculate:
    def __init__(self, num):
        self.num = num

    def test(self):
        print('正在使用Calculate进行计算。。。')

    @classmethod
    def test1(cls):
        print('------>Calculate中类方法')


def test():
    print("我是测试")


print(__name__)  # 打印模块名
if __name__ == '__main__':
    print(__name__)  # __name__---->__main__
    test()

------------------------------------------------------------------------------------------------------------------

'''
__init__.py文件
当导入包时,默认调用__init__.py文件
1.当导入包的时候,把一些初始化的函数,变量,类定义在__init__.py文件中
2.此文件中函数,变量等的访问,只需要通过:包名,函数。。。
3.结合__all__=[通过*可以访问的模块]
'''

# import user
#
# from user.models import User
#
# user.create_app()
# user.printA()


from user import *  # from 模块 import * 表示可以使用模块里面所有内容,如果没有定义__all__所有的都可以访问,但是如果添加上了__all__,只有__all__=['','']

                    # 列表中可以访问

                    #from 包 import * 表示该包中内容(模块)是不能访问,就需要__init__.py文件中定义__all__=[可以通过*访问的模块]
user = models.User("admin", "123456")
user.show()

print(test.MAX)

-----------------------------------------------------------------------------------------------------

# from user import models
#
# u=models.User('admin','123456')
# u.show()

# from user.models import User
#
# u=User('admin','123456')
# u.show()
#
# from articel.models import Article
#
# a=Article('个人总结','佳伟')
# a.show()

from user.models import *  # __all__ = ["User"]仅对*起作用
# print(version) 不可查阅
u=User('admin','123456')
'''
article
--models.py
--__init__.py
user
--models.py
--__init__.py
--test.py
package.py

from 包 import 模块
from 包.模块 import 类|函数|变量
from 包.模块 import *
'''

--------------------------------------------------------------------------------------------------------

ctrl+alt+l自动对齐
包的导入:
import XX
from xxx import a,b

文件夹 包:py文件
非py文件 directory(文件夹)
一个包里可以存放多个模块
项目>包>模块>类 函数 变量

marked directory as->Sources Root

使用包中模块中的User类

-----------------------------------------------------------------------------------------------------------

'''

循环导入:大型python项目中,需要很多的python文件,由于架构不当,可能会出现模块间的相互导入
A:模块
    def test():
        f()

B:模块
    def f():
    test()

避免产生循环导入:
1.重新架构
2.将导入的语句放到函数里面
3.把导入语句放到模块最后
'''
from 循环导入2 import func


def task1():
    print('-----task1------')


def task2():
    print('-----task2------')
    func()


# 调用task1
if __name__ == '__main__':
    task1()

    task2()

----------------------------------------------------------------------------------------------------

def func():
    print('-------循环导入2里面的func---1----')
    from 循环导入1 import task1
    task1()
    print('-------循环导入2里面的func---2----')
-----------------------------------------------------------------------
'''
当你导入一个模块,Python解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python则搜索在shell变量Pythonpath下的每个目录
3、如果都找不到,Python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,Pythonpath和由安装过程决定的默认目录。

自定义模块
系统模块
sys模块
'''

import sys

print(sys.path)
print(sys.version)
print(sys.argv)   #运行程序时的参数

--------------------------------------------------------------------------------------------------------------------

'''
在python中,模块是代码组织的一种方式,把功能相近的函数或者类放到一个文件中,一个文件(.py)就是一个模块(module),模块名就是文件
名去掉后缀,这样做的好处是:
-提高代码的可复用、可维护性。一个模块编写完毕后,可以很方便的在其他项目中导入
-解决命名冲突,不同模块中相同的命名不会冲突
1.自定义模块
2.使用系统模块
导入模块:
1.import 模块名
  模块名.变量   模块名.函数   模块名.类
2. from 模块名 import 变量|函数|类
3.from 模块名 import *
该模块中所有的内容
但是如果想限制获取的内容,可以在模块中使用__all__=[使用*可以访问到的内容]
4.无论是import还是from形式,都会将模块内容进行加载
如果不希望其进行调用,就会用到__name__
在自己模块里面__name__叫:__main__
如果在其他模块中通过导入的方式调用的话:__name__:模块名
'''
list1 = [1, 2, 35, 68]

# 导入模块 import 模块名
import calculate

# 使用模块中的函数 模块名.变量   模块名.函数   模块名.类
value = calculate.add(*list1)
print(value)

# 使用模块变量
print(calculate.number)

# 使用模块中的类
cal = calculate.Calculate(88)
cal.test()

calculate.Calculate.test1()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python 3.8.10-amd64是Python编程语言的一个版本,其中"3.8.10"表示Python的主要版本号为3.8,而"amd64"表示该版本适用于64位的Windows操作系统。 Python是一种高级编程语言,具有简单易学、可读性高和灵活性的特点。它被广泛用于各种领域,包括软件开发、数据分析、人工智能、网络开发等。 Python 3.8.10-amd64是Python 3.8系列的一个小版本更新,主要针对安全性和稳定性做了一些改进和修复。在这个版本中,开发者修复了一些已知的漏洞和错误,并进行了一些性能优化。 Python 3.8.10-amd64可以在64位的Windows操作系统上运行。"amd64"代表Advanced Micro Devices 64位架构,是一种64位x86处理器架构,常用于PC、服务器和一些嵌入式系统。 使用Python 3.8.10-amd64,开发者可以编写各种应用程序,从简单的脚本到复杂的桌面应用程序或者Web应用程序。Python具有丰富的库和模块,可以方便地完成各种任务,还支持面向对象编程、函数式编程等多种编程范式。 Python 3.8.10-amd64的发布说明中详细列出了所有的改进和修复,用户可以参考该文档了解具体的更新内容。为了正常使用Python 3.8.10-amd64,用户需要下载安装对应的Python安装包,并按照安装指南进行安装和配置。 总之,Python 3.8.10-amd64是Python编程语言的一个版本,适用于64位的Windows操作系统,具有改进和修复的功能,可以帮助开发者快速、高效地进行软件开发与应用。 ### 回答2: Python 3.8.10是Python编程语言的一个版本,而`amd64`是指该版本适用于64位的x86架构。本版本是Python 3.8的一次更新,修复了一些bug并引入了一些新特性。 Python 3.8.10增强了Python的性能、安全性和稳定性。对于已知的错误进行了修复,提高了代码的运行效率和可靠性。这些修复使得Python更加健壮,同时提供了更好的用户体验。 在这个版本中,Python 3.8.10引入了一些新特性。例如,它支持使用Python的`f-strings`格式化字符串,这使得代码更加易读和简洁。它还改进了Python的类型提示功能,帮助开发者更好地理解代码和进行调试。 除了这些改进,Python 3.8.10还修复了一些已知的安全问题和漏洞,提高了Python的安全性。这些修复保护了用户的数据和系统免受潜在的威胁和攻击。 总之,Python 3.8.10是Python编程语言的一个版本,它提供了一些新特性、修复了已知的错误并增强了性能、安全性和稳定性。这个版本适用于64位的x86架构,在使用Python进行开发时可以选择安装和使用。 ### 回答3: Python-3.8.10-amd64是Python编程语言的一个版本。它是Python 3.8系列的第10个维护版本,特别为64位的x86架构的计算机设计。 Python是一种高级、面向对象、解释性的编程语言,具有简洁而易读的语法。Python-3.8.10-amd64版本包含了许多改进和修复的错误,以提升语言的性能和稳定性。 在Python 3.8.10-amd64中,改进的重点是修复了各种错误和漏洞,以提高整体的可靠性。此外,该版本也引入了一些小的新功能和改进,以增强开发者的体验。 与以前的版本相比,Python-3.8.10-amd64在性能和资源利用方面进行了优化。这个版本还修复了一些安全性问题,提升了编程环境的安全性。 总之,Python-3.8.10-amd64是Python 3.8系列的一个稳定版本,包含了许多改进和修复错误的功能。它为64位的x86计算机提供了更好的性能和稳定性,同时还增加了一些新的功能和改进。如果你是Python开发者,升级到这个版本可能会带来更好的开发体验和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值