Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环函数非类型对象不可编辑_Python_Python Imaging Library_Recurring - Fatal编程技术网

Python 循环函数非类型对象不可编辑

Python 循环函数非类型对象不可编辑,python,python-imaging-library,recurring,Python,Python Imaging Library,Recurring,所以我在运行这个循环函数时出错了,我不知道我做错了什么 脚本只是通过缩放字体大小,直到字体足够小,从而尝试将文本放入图像中。第一次运行是正确的,输入if tSize,但是当它具有正确的字体大小时,它崩溃 def calculateFontSize(scale, width, height, quoteL, fontsPath): fontSize = int(height*scale) if fonts: fnt = ImageFont.truetype(os

所以我在运行这个循环函数时出错了,我不知道我做错了什么

脚本只是通过缩放字体大小,直到字体足够小,从而尝试将文本放入图像中。第一次运行是正确的,输入if tSize,但是当它具有正确的字体大小时,它崩溃

def calculateFontSize(scale, width, height, quoteL, fontsPath):

    fontSize = int(height*scale)

    if fonts:
        fnt = ImageFont.truetype(os.path.join(fontsPath,fonts[randint(0,len(fonts)-1)]),fontSize)
    else:
        fnt = ImageFont.truetype(wd+'\\fonts\\IndieFlower.ttf',fontSize) # Selected font

    tSize = [d.textsize(quoteL[0],font = fnt),d.textsize(quoteL[1],font = fnt)]

    if tSize[0][0] > width or tSize[1][0] > width:
        scale = scale - 0.005
        calculateFontSize(scale, width, height, quoteL, fontsPath)
    else:
        return tSize, int(fontSize), fnt

tSize, fontSize, fnt = calculateFontSize(scale, width, height, quoteL, fontsPath)
这是我得到的错误:

    Traceback (most recent call last):
  File "C:\script.py", line 286, in <m
odule>
    main()
  File "C:\script.py", line 275, in ma
in
    image = writeOnImage(picture,quoteL)
  File "C:\script.py", line 188, in wr
iteOnImage
    tSize, fontSize, fnt = calculateFontSize(scale, width, height, quoteL, fonts
Path)
TypeError: 'NoneType' object is not iterable
回溯(最近一次呼叫最后一次):
文件“C:\script.py”,第286行,在
main()
文件“C:\script.py”,第275行,单位为ma
在里面
image=writeOnImage(图片,引号)
文件“C:\script.py”,第188行,在wr中
iteOnImage
tSize,fontSize,fnt=计算字体大小(比例,宽度,高度,引号,字体
(路径)
TypeError:“非类型”对象不可编辑
我做错了什么


SOLVED:当我在函数内部调用它时,我应该返回该函数。

calculateFontSize
在函数的第二个
分支中没有返回任何内容(因此它将隐式返回
None
)?我应该在哪里返回?@mavano您是否同意,如果您没有在每个条件分支中返回某些内容,那么在某些情况下,您的函数将不会返回任何内容(
None
)?请注意,修复方法不是返回函数,而是返回递归函数调用的值。