Py学习  »  MichaelD  »  全部回复
回复总数  3
6 年前
回复了 MichaelD 创建的主题 » Python将数组从一个函数传递到另一个函数

不需要重新运行 SQL_Country() 第二次作为 df

df_country = None

def SQL_Country():
    if df_country is None:
        conn = psq.connect("localhost","root","root","world",cursorclass=psq.cursors.DictCursor)
        query = "SELECT * FROM country"

        with conn:
            cursor = conn.cursor()
            cursor.execute(query)
            country = cursor.fetchall()

            df_country = pd.DataFrame(country, columns=["Code", "Name", "Continent", "Population", "HeadOfState"])
    return df_country

现在当你调用这个函数时,它不会第二次执行它,但是你会得到你想要的值

def assignment():
    ## do something here
    if Choice == 6:
         # No need to do the name check
        x = SQL_Country()
        if x is None:
            print()
6 年前
回复了 MichaelD 创建的主题 » python文件路径&仅针对特定扩展名进行筛选

我会用 pathlib 模块,如果您使用的是Python3。它使得路径和文件的使用更加简单。(我做了一些自由,只是想说明为什么路径比 os 选择。

from pathlib import Path

cwd_ = Path.cwd()
parent_path = cwd_.parent

def path_hierarchy(path):
    p = Path(path)
    hierarchy = {
        'artist': p.stem,
        'album': 'Node 42177',
        'url': parent_path/"audio"/p.stem,
        'cover_art_url': parent_path/'album-art/Radio.jpg',
    }

    try:
        hierarchy['children'] = [
            path_hierarchy(contents)
            for contents in p.glob('*.mp3') ### YOUR EXTENSION HERE
        ]
    except OSError as e:
        if e.errno != errno.ENOTDIR:
            raise
        #hierarchy['type'] = 'file'

    return hierarchy

只需将函数附加到 callbacks 列表

import gc

def gb_callback_example(phase, info):
   ... Do some stuff

gc.callbacks.append(gb_callback_example)

gc.callbacks垃圾将调用的回调列表 收集前后。将调用回调 有两个参数,阶段和信息。

相位可以是两个值之一:

_156;start_157;:垃圾收集即将开始。

停止:垃圾收集已完成。

信息是为回调提供更多信息的dict。当前定义了以下键:

一代:被收集的最老一代。

收集:当阶段停止时,成功收集的对象数。

_156;uncollectable_157;:当相位为__stop_157;时,无法收集并放入垃圾中的对象数。

应用程序可以将自己的回调添加到此列表中。主要用途 案例包括:

收集有关垃圾收集的统计信息,例如收集不同代的频率以及收集所需的时间。

允许应用程序在它们出现在垃圾中时识别和清除它们自己的不可回收类型。