[{"data":1,"prerenderedAt":2328},["ShallowReactive",2],{"doc-\u002Ferrors\u002Fattributeerror-nonetype-object-has-no-attribute-fix":3},{"id":4,"title":5,"body":6,"description":2321,"extension":2322,"meta":2323,"navigation":109,"path":2324,"seo":2325,"stem":2326,"__hash__":2327},"content\u002Ferrors\u002Fattributeerror-nonetype-object-has-no-attribute-fix.md","AttributeError: 'NoneType' object has no attribute (Fix)",{"type":7,"value":8,"toc":2291},"minimark",[9,19,27,47,50,69,74,183,196,200,203,209,212,243,246,282,285,305,313,317,320,350,353,382,386,393,485,487,563,566,594,597,652,654,663,670,674,677,682,685,688,721,728,740,744,749,752,816,818,826,829,891,893,902,906,911,916,1001,1009,1012,1086,1088,1133,1140,1146,1215,1219,1225,1272,1278,1292,1347,1353,1356,1382,1385,1454,1456,1479,1482,1555,1557,1565,1572,1576,1579,1583,1586,1589,1593,1596,1654,1657,1660,1780,1783,1815,1819,1822,1856,1862,1865,1890,1893,1999,2008,2012,2015,2018,2021,2047,2051,2054,2076,2079,2104,2113,2116,2188,2199,2203,2207,2214,2218,2227,2231,2241,2245,2251,2255,2287],[10,11,13,14,18],"h1",{"id":12},"attributeerror-nonetype-object-has-no-attribute-fix","AttributeError: ",[15,16,17],"code",{},"'NoneType' object has no attribute"," (Fix)",[20,21,22,23,26],"p",{},"This error happens when you try to use an attribute or method on ",[15,24,25],{},"None",".",[20,28,29,30,32,33,35,36,39,40,39,43,46],{},"In Python, ",[15,31,25],{}," means “no value”. So if a variable is ",[15,34,25],{},", you cannot call methods like ",[15,37,38],{},".strip()",", ",[15,41,42],{},".append()",[15,44,45],{},".get()",", or access attributes on it.",[20,48,49],{},"The fix is usually simple:",[51,52,53,60,63],"ul",{},[54,55,56,57,59],"li",{},"find where ",[15,58,25],{}," came from",[54,61,62],{},"make sure you have the right object before using it",[54,64,65,66,68],{},"add a check or default value if ",[15,67,25],{}," is possible",[70,71,73],"h2",{"id":72},"quick-fix","Quick fix",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","name = get_name()\n\nif name is not None:\n    print(name.strip())\nelse:\n    print(\"No name returned\")\n","python","",[15,82,83,104,111,134,155,163],{"__ignoreMap":80},[84,85,88,92,96,100],"span",{"class":86,"line":87},"line",1,[84,89,91],{"class":90},"su5hD","name ",[84,93,95],{"class":94},"smGrS","=",[84,97,99],{"class":98},"slqww"," get_name",[84,101,103],{"class":102},"sP7_E","()\n",[84,105,107],{"class":86,"line":106},2,[84,108,110],{"emptyLinePlaceholder":109},true,"\n",[84,112,114,118,121,124,127,131],{"class":86,"line":113},3,[84,115,117],{"class":116},"sVHd0","if",[84,119,120],{"class":90}," name ",[84,122,123],{"class":94},"is",[84,125,126],{"class":94}," not",[84,128,130],{"class":129},"s39Yj"," None",[84,132,133],{"class":102},":\n",[84,135,137,141,144,147,149,152],{"class":86,"line":136},4,[84,138,140],{"class":139},"sptTA","    print",[84,142,143],{"class":102},"(",[84,145,146],{"class":98},"name",[84,148,26],{"class":102},[84,150,151],{"class":98},"strip",[84,153,154],{"class":102},"())\n",[84,156,158,161],{"class":86,"line":157},5,[84,159,160],{"class":116},"else",[84,162,133],{"class":102},[84,164,166,168,170,174,178,180],{"class":86,"line":165},6,[84,167,140],{"class":139},[84,169,143],{"class":102},[84,171,173],{"class":172},"sjJ54","\"",[84,175,177],{"class":176},"s_sjI","No name returned",[84,179,173],{"class":172},[84,181,182],{"class":102},")\n",[20,184,185,186,188,189,39,191,193,194,26],{},"This error happens when you try to use a method or attribute on ",[15,187,25],{},". Check the variable before calling methods like ",[15,190,38],{},[15,192,42],{},", or ",[15,195,45],{},[70,197,199],{"id":198},"what-this-error-means","What this error means",[20,201,202],{},"Python expected an object that has a method or attribute.",[20,204,205,206,208],{},"But the value was ",[15,207,25],{}," instead.",[20,210,211],{},"That is why code like this fails:",[75,213,215],{"className":77,"code":214,"language":79,"meta":80,"style":80},"value = None\nprint(value.strip())\n",[15,216,217,227],{"__ignoreMap":80},[84,218,219,222,224],{"class":86,"line":87},[84,220,221],{"class":90},"value ",[84,223,95],{"class":94},[84,225,226],{"class":129}," None\n",[84,228,229,232,234,237,239,241],{"class":86,"line":106},[84,230,231],{"class":139},"print",[84,233,143],{"class":102},[84,235,236],{"class":98},"value",[84,238,26],{"class":102},[84,240,151],{"class":98},[84,242,154],{"class":102},[20,244,245],{},"Output:",[75,247,249],{"className":77,"code":248,"language":79,"meta":80,"style":80},"AttributeError: 'NoneType' object has no attribute 'strip'\n",[15,250,251],{"__ignoreMap":80},[84,252,253,257,260,263,266,269,272,275,277,279],{"class":86,"line":87},[84,254,256],{"class":255},"sZMiF","AttributeError",[84,258,259],{"class":102},":",[84,261,262],{"class":172}," '",[84,264,265],{"class":176},"NoneType",[84,267,268],{"class":172},"'",[84,270,271],{"class":255}," object",[84,273,274],{"class":90}," has no attribute ",[84,276,268],{"class":172},[84,278,151],{"class":176},[84,280,281],{"class":172},"'\n",[20,283,284],{},"Key idea:",[51,286,287,292,299],{},[54,288,289,291],{},[15,290,25],{}," is a special value that means “nothing” or “no result”",[54,293,294,296,297],{},[15,295,265],{}," is the type of ",[15,298,25],{},[54,300,301,302,304],{},"methods like ",[15,303,38],{}," only work on real objects such as strings",[20,306,307,308,26],{},"If you are new to Python errors, see ",[309,310,312],"a",{"href":311},"\u002Flearn\u002Fpython-errors-and-exceptions-explained\u002F","Python errors and exceptions explained",[70,314,316],{"id":315},"why-this-happens","Why this happens",[20,318,319],{},"This error usually means one of these things happened:",[51,321,322,327,336,341,347],{},[54,323,324,325],{},"A function did not return a value, so Python used ",[15,326,25],{},[54,328,329,330],{},"You assigned the result of an in-place method like ",[309,331,333],{"href":332},"\u002Freference\u002Fpython-list-sort-method\u002F",[15,334,335],{},"list.sort()",[54,337,338,339],{},"A dictionary lookup or function returned ",[15,340,25],{},[54,342,343,344,346],{},"A variable was set to ",[15,345,25],{}," earlier in the program",[54,348,349],{},"User input, file data, or API data was missing",[20,351,352],{},"Here are some common causes:",[51,354,355,358,364,374,377],{},[54,356,357],{},"Calling a method on the result of a function that returns nothing",[54,359,360,361,363],{},"Using the result of ",[15,362,335],{}," as if it were a new list",[54,365,366,367,373],{},"Expecting ",[309,368,370],{"href":369},"\u002Freference\u002Fpython-dictionary-get-method\u002F",[15,371,372],{},"dict.get()"," to always return a real value",[54,375,376],{},"Reading missing data from a file, API, or form",[54,378,379,380],{},"Overwriting a valid variable with ",[15,381,25],{},[70,383,385],{"id":384},"example-that-causes-the-error","Example that causes the error",[20,387,388,389,392],{},"A very common cause is a function that has no ",[15,390,391],{},"return"," statement.",[75,394,396],{"className":77,"code":395,"language":79,"meta":80,"style":80},"def get_name():\n    print(\"Getting name...\")\n\nname = get_name()\n\nprint(name)\nprint(type(name))\nprint(name.strip())\n",[15,397,398,410,425,429,439,443,453,470],{"__ignoreMap":80},[84,399,400,404,407],{"class":86,"line":87},[84,401,403],{"class":402},"sbsja","def",[84,405,99],{"class":406},"sGLFI",[84,408,409],{"class":102},"():\n",[84,411,412,414,416,418,421,423],{"class":86,"line":106},[84,413,140],{"class":139},[84,415,143],{"class":102},[84,417,173],{"class":172},[84,419,420],{"class":176},"Getting name...",[84,422,173],{"class":172},[84,424,182],{"class":102},[84,426,427],{"class":86,"line":113},[84,428,110],{"emptyLinePlaceholder":109},[84,430,431,433,435,437],{"class":86,"line":136},[84,432,91],{"class":90},[84,434,95],{"class":94},[84,436,99],{"class":98},[84,438,103],{"class":102},[84,440,441],{"class":86,"line":157},[84,442,110],{"emptyLinePlaceholder":109},[84,444,445,447,449,451],{"class":86,"line":165},[84,446,231],{"class":139},[84,448,143],{"class":102},[84,450,146],{"class":98},[84,452,182],{"class":102},[84,454,456,458,460,463,465,467],{"class":86,"line":455},7,[84,457,231],{"class":139},[84,459,143],{"class":102},[84,461,462],{"class":255},"type",[84,464,143],{"class":102},[84,466,146],{"class":98},[84,468,469],{"class":102},"))\n",[84,471,473,475,477,479,481,483],{"class":86,"line":472},8,[84,474,231],{"class":139},[84,476,143],{"class":102},[84,478,146],{"class":98},[84,480,26],{"class":102},[84,482,151],{"class":98},[84,484,154],{"class":102},[20,486,245],{},[75,488,490],{"className":77,"code":489,"language":79,"meta":80,"style":80},"Getting name...\nNone\n\u003Cclass 'NoneType'>\nTraceback (most recent call last):\n  ...\nAttributeError: 'NoneType' object has no attribute 'strip'\n",[15,491,492,501,506,523,536,541],{"__ignoreMap":80},[84,493,494,497],{"class":86,"line":87},[84,495,496],{"class":90},"Getting name",[84,498,500],{"class":499},"s_hVV","...\n",[84,502,503],{"class":86,"line":106},[84,504,505],{"class":129},"None\n",[84,507,508,511,514,516,518,520],{"class":86,"line":113},[84,509,510],{"class":94},"\u003C",[84,512,513],{"class":402},"class",[84,515,262],{"class":172},[84,517,265],{"class":176},[84,519,268],{"class":172},[84,521,522],{"class":94},">\n",[84,524,525,528,530,533],{"class":86,"line":136},[84,526,527],{"class":98},"Traceback ",[84,529,143],{"class":102},[84,531,532],{"class":98},"most recent call last",[84,534,535],{"class":102},"):\n",[84,537,538],{"class":86,"line":157},[84,539,540],{"class":499},"  ...\n",[84,542,543,545,547,549,551,553,555,557,559,561],{"class":86,"line":165},[84,544,256],{"class":255},[84,546,259],{"class":102},[84,548,262],{"class":172},[84,550,265],{"class":176},[84,552,268],{"class":172},[84,554,271],{"class":255},[84,556,274],{"class":90},[84,558,268],{"class":172},[84,560,151],{"class":176},[84,562,281],{"class":172},[20,564,565],{},"What happened:",[51,567,568,574,577,583],{},[54,569,570,573],{},[15,571,572],{},"get_name()"," ran",[54,575,576],{},"the function did not return anything",[54,578,579,580,582],{},"Python returned ",[15,581,25],{}," automatically",[54,584,585,588,589,591,592],{},[15,586,587],{},"name.strip()"," failed because ",[15,590,146],{}," was ",[15,593,25],{},[20,595,596],{},"To fix it, return a real string:",[75,598,600],{"className":77,"code":599,"language":79,"meta":80,"style":80},"def get_name():\n    return \"  Alice  \"\n\nname = get_name()\nprint(name.strip())\n",[15,601,602,610,624,628,638],{"__ignoreMap":80},[84,603,604,606,608],{"class":86,"line":87},[84,605,403],{"class":402},[84,607,99],{"class":406},[84,609,409],{"class":102},[84,611,612,615,618,621],{"class":86,"line":106},[84,613,614],{"class":116},"    return",[84,616,617],{"class":172}," \"",[84,619,620],{"class":176},"  Alice  ",[84,622,623],{"class":172},"\"\n",[84,625,626],{"class":86,"line":113},[84,627,110],{"emptyLinePlaceholder":109},[84,629,630,632,634,636],{"class":86,"line":136},[84,631,91],{"class":90},[84,633,95],{"class":94},[84,635,99],{"class":98},[84,637,103],{"class":102},[84,639,640,642,644,646,648,650],{"class":86,"line":157},[84,641,231],{"class":139},[84,643,143],{"class":102},[84,645,146],{"class":98},[84,647,26],{"class":102},[84,649,151],{"class":98},[84,651,154],{"class":102},[20,653,245],{},[75,655,657],{"className":77,"code":656,"language":79,"meta":80,"style":80},"Alice\n",[15,658,659],{"__ignoreMap":80},[84,660,661],{"class":86,"line":87},[84,662,656],{"class":90},[20,664,665,666,26],{},"If you want a deeper explanation of this behavior, see ",[309,667,669],{"href":668},"\u002Flearn\u002Freturn-values-in-python-functions\u002F","return values in Python functions",[70,671,673],{"id":672},"how-to-fix-it","How to fix it",[20,675,676],{},"Use these steps to fix the error.",[678,679,681],"h3",{"id":680},"_1-find-where-the-variable-gets-its-value","1. Find where the variable gets its value",[20,683,684],{},"Look at the line that causes the error, then trace backward.",[20,686,687],{},"For example:",[75,689,691],{"className":77,"code":690,"language":79,"meta":80,"style":80},"username = get_user_name()\nprint(username.upper())\n",[15,692,693,705],{"__ignoreMap":80},[84,694,695,698,700,703],{"class":86,"line":87},[84,696,697],{"class":90},"username ",[84,699,95],{"class":94},[84,701,702],{"class":98}," get_user_name",[84,704,103],{"class":102},[84,706,707,709,711,714,716,719],{"class":86,"line":106},[84,708,231],{"class":139},[84,710,143],{"class":102},[84,712,713],{"class":98},"username",[84,715,26],{"class":102},[84,717,718],{"class":98},"upper",[84,720,154],{"class":102},[20,722,723,724,727],{},"Do not focus only on ",[15,725,726],{},"upper()",". The real question is:",[20,729,730],{},[731,732,733,734,736,737,739],"strong",{},"Why is ",[15,735,713],{}," equal to ",[15,738,25],{},"?",[678,741,743],{"id":742},"_2-check-whether-a-function-needs-a-return-statement","2. Check whether a function needs a return statement",[20,745,746,747,26],{},"If a function should give you a value, it must use ",[15,748,391],{},[20,750,751],{},"Wrong:",[75,753,755],{"className":77,"code":754,"language":79,"meta":80,"style":80},"def make_title(name):\n    name.title()\n\ntitle = make_title(\"python\")\nprint(title)\n",[15,756,757,771,783,787,806],{"__ignoreMap":80},[84,758,759,761,764,766,769],{"class":86,"line":87},[84,760,403],{"class":402},[84,762,763],{"class":406}," make_title",[84,765,143],{"class":102},[84,767,146],{"class":768},"sFwrP",[84,770,535],{"class":102},[84,772,773,776,778,781],{"class":86,"line":106},[84,774,775],{"class":90},"    name",[84,777,26],{"class":102},[84,779,780],{"class":98},"title",[84,782,103],{"class":102},[84,784,785],{"class":86,"line":113},[84,786,110],{"emptyLinePlaceholder":109},[84,788,789,792,794,796,798,800,802,804],{"class":86,"line":136},[84,790,791],{"class":90},"title ",[84,793,95],{"class":94},[84,795,763],{"class":98},[84,797,143],{"class":102},[84,799,173],{"class":172},[84,801,79],{"class":176},[84,803,173],{"class":172},[84,805,182],{"class":102},[84,807,808,810,812,814],{"class":86,"line":157},[84,809,231],{"class":139},[84,811,143],{"class":102},[84,813,780],{"class":98},[84,815,182],{"class":102},[20,817,245],{},[75,819,820],{"className":77,"code":505,"language":79,"meta":80,"style":80},[15,821,822],{"__ignoreMap":80},[84,823,824],{"class":86,"line":87},[84,825,505],{"class":129},[20,827,828],{},"Correct:",[75,830,832],{"className":77,"code":831,"language":79,"meta":80,"style":80},"def make_title(name):\n    return name.title()\n\ntitle = make_title(\"python\")\nprint(title)\n",[15,833,834,846,859,863,881],{"__ignoreMap":80},[84,835,836,838,840,842,844],{"class":86,"line":87},[84,837,403],{"class":402},[84,839,763],{"class":406},[84,841,143],{"class":102},[84,843,146],{"class":768},[84,845,535],{"class":102},[84,847,848,850,853,855,857],{"class":86,"line":106},[84,849,614],{"class":116},[84,851,852],{"class":90}," name",[84,854,26],{"class":102},[84,856,780],{"class":98},[84,858,103],{"class":102},[84,860,861],{"class":86,"line":113},[84,862,110],{"emptyLinePlaceholder":109},[84,864,865,867,869,871,873,875,877,879],{"class":86,"line":136},[84,866,791],{"class":90},[84,868,95],{"class":94},[84,870,763],{"class":98},[84,872,143],{"class":102},[84,874,173],{"class":172},[84,876,79],{"class":176},[84,878,173],{"class":172},[84,880,182],{"class":102},[84,882,883,885,887,889],{"class":86,"line":157},[84,884,231],{"class":139},[84,886,143],{"class":102},[84,888,780],{"class":98},[84,890,182],{"class":102},[20,892,245],{},[75,894,896],{"className":77,"code":895,"language":79,"meta":80,"style":80},"Python\n",[15,897,898],{"__ignoreMap":80},[84,899,900],{"class":86,"line":87},[84,901,895],{"class":90},[678,903,905],{"id":904},"_3-do-not-assign-the-result-of-methods-that-change-objects-in-place","3. Do not assign the result of methods that change objects in place",[20,907,908,909,26],{},"Some methods modify an object and return ",[15,910,25],{},[20,912,913,914,259],{},"A common example is ",[15,915,335],{},[75,917,919],{"className":77,"code":918,"language":79,"meta":80,"style":80},"numbers = [3, 1, 2]\nresult = numbers.sort()\n\nprint(result)\nprint(result.append(4))\n",[15,920,921,949,966,970,981],{"__ignoreMap":80},[84,922,923,926,928,931,935,938,941,943,946],{"class":86,"line":87},[84,924,925],{"class":90},"numbers ",[84,927,95],{"class":94},[84,929,930],{"class":102}," [",[84,932,934],{"class":933},"srdBf","3",[84,936,937],{"class":102},",",[84,939,940],{"class":933}," 1",[84,942,937],{"class":102},[84,944,945],{"class":933}," 2",[84,947,948],{"class":102},"]\n",[84,950,951,954,956,959,961,964],{"class":86,"line":106},[84,952,953],{"class":90},"result ",[84,955,95],{"class":94},[84,957,958],{"class":90}," numbers",[84,960,26],{"class":102},[84,962,963],{"class":98},"sort",[84,965,103],{"class":102},[84,967,968],{"class":86,"line":113},[84,969,110],{"emptyLinePlaceholder":109},[84,971,972,974,976,979],{"class":86,"line":136},[84,973,231],{"class":139},[84,975,143],{"class":102},[84,977,978],{"class":98},"result",[84,980,182],{"class":102},[84,982,983,985,987,989,991,994,996,999],{"class":86,"line":157},[84,984,231],{"class":139},[84,986,143],{"class":102},[84,988,978],{"class":98},[84,990,26],{"class":102},[84,992,993],{"class":98},"append",[84,995,143],{"class":102},[84,997,998],{"class":933},"4",[84,1000,469],{"class":102},[20,1002,1003,1004,1006,1007,26],{},"This fails because ",[15,1005,978],{}," is ",[15,1008,25],{},[20,1010,1011],{},"Correct version:",[75,1013,1015],{"className":77,"code":1014,"language":79,"meta":80,"style":80},"numbers = [3, 1, 2]\nnumbers.sort()\n\nprint(numbers)\nnumbers.append(4)\nprint(numbers)\n",[15,1016,1017,1037,1048,1052,1062,1076],{"__ignoreMap":80},[84,1018,1019,1021,1023,1025,1027,1029,1031,1033,1035],{"class":86,"line":87},[84,1020,925],{"class":90},[84,1022,95],{"class":94},[84,1024,930],{"class":102},[84,1026,934],{"class":933},[84,1028,937],{"class":102},[84,1030,940],{"class":933},[84,1032,937],{"class":102},[84,1034,945],{"class":933},[84,1036,948],{"class":102},[84,1038,1039,1042,1044,1046],{"class":86,"line":106},[84,1040,1041],{"class":90},"numbers",[84,1043,26],{"class":102},[84,1045,963],{"class":98},[84,1047,103],{"class":102},[84,1049,1050],{"class":86,"line":113},[84,1051,110],{"emptyLinePlaceholder":109},[84,1053,1054,1056,1058,1060],{"class":86,"line":136},[84,1055,231],{"class":139},[84,1057,143],{"class":102},[84,1059,1041],{"class":98},[84,1061,182],{"class":102},[84,1063,1064,1066,1068,1070,1072,1074],{"class":86,"line":157},[84,1065,1041],{"class":90},[84,1067,26],{"class":102},[84,1069,993],{"class":98},[84,1071,143],{"class":102},[84,1073,998],{"class":933},[84,1075,182],{"class":102},[84,1077,1078,1080,1082,1084],{"class":86,"line":165},[84,1079,231],{"class":139},[84,1081,143],{"class":102},[84,1083,1041],{"class":98},[84,1085,182],{"class":102},[20,1087,245],{},[75,1089,1091],{"className":77,"code":1090,"language":79,"meta":80,"style":80},"[1, 2, 3]\n[1, 2, 3, 4]\n",[15,1092,1093,1112],{"__ignoreMap":80},[84,1094,1095,1098,1101,1103,1105,1107,1110],{"class":86,"line":87},[84,1096,1097],{"class":102},"[",[84,1099,1100],{"class":933},"1",[84,1102,937],{"class":102},[84,1104,945],{"class":933},[84,1106,937],{"class":102},[84,1108,1109],{"class":933}," 3",[84,1111,948],{"class":102},[84,1113,1114,1116,1118,1120,1122,1124,1126,1128,1131],{"class":86,"line":106},[84,1115,1097],{"class":102},[84,1117,1100],{"class":933},[84,1119,937],{"class":102},[84,1121,945],{"class":933},[84,1123,937],{"class":102},[84,1125,1109],{"class":933},[84,1127,937],{"class":102},[84,1129,1130],{"class":933}," 4",[84,1132,948],{"class":102},[678,1134,1136,1137,1139],{"id":1135},"_4-use-an-if-check-before-accessing-attributes","4. Use an ",[15,1138,117],{}," check before accessing attributes",[20,1141,1142,1143,1145],{},"If ",[15,1144,25],{}," is a valid possible value, check first:",[75,1147,1149],{"className":77,"code":1148,"language":79,"meta":80,"style":80},"email = None\n\nif email is not None:\n    print(email.strip())\nelse:\n    print(\"No email found\")\n",[15,1150,1151,1160,1164,1179,1194,1200],{"__ignoreMap":80},[84,1152,1153,1156,1158],{"class":86,"line":87},[84,1154,1155],{"class":90},"email ",[84,1157,95],{"class":94},[84,1159,226],{"class":129},[84,1161,1162],{"class":86,"line":106},[84,1163,110],{"emptyLinePlaceholder":109},[84,1165,1166,1168,1171,1173,1175,1177],{"class":86,"line":113},[84,1167,117],{"class":116},[84,1169,1170],{"class":90}," email ",[84,1172,123],{"class":94},[84,1174,126],{"class":94},[84,1176,130],{"class":129},[84,1178,133],{"class":102},[84,1180,1181,1183,1185,1188,1190,1192],{"class":86,"line":136},[84,1182,140],{"class":139},[84,1184,143],{"class":102},[84,1186,1187],{"class":98},"email",[84,1189,26],{"class":102},[84,1191,151],{"class":98},[84,1193,154],{"class":102},[84,1195,1196,1198],{"class":86,"line":157},[84,1197,160],{"class":116},[84,1199,133],{"class":102},[84,1201,1202,1204,1206,1208,1211,1213],{"class":86,"line":165},[84,1203,140],{"class":139},[84,1205,143],{"class":102},[84,1207,173],{"class":172},[84,1209,1210],{"class":176},"No email found",[84,1212,173],{"class":172},[84,1214,182],{"class":102},[678,1216,1218],{"id":1217},"_5-give-the-variable-a-default-value-if-needed","5. Give the variable a default value if needed",[20,1220,1221,1222,1224],{},"Sometimes you want to replace ",[15,1223,25],{}," with a safe default.",[75,1226,1228],{"className":77,"code":1227,"language":79,"meta":80,"style":80},"name = None\nclean_name = name or \"\"\n\nprint(clean_name.strip())\n",[15,1229,1230,1238,1253,1257],{"__ignoreMap":80},[84,1231,1232,1234,1236],{"class":86,"line":87},[84,1233,91],{"class":90},[84,1235,95],{"class":94},[84,1237,226],{"class":129},[84,1239,1240,1243,1245,1247,1250],{"class":86,"line":106},[84,1241,1242],{"class":90},"clean_name ",[84,1244,95],{"class":94},[84,1246,120],{"class":90},[84,1248,1249],{"class":94},"or",[84,1251,1252],{"class":172}," \"\"\n",[84,1254,1255],{"class":86,"line":113},[84,1256,110],{"emptyLinePlaceholder":109},[84,1258,1259,1261,1263,1266,1268,1270],{"class":86,"line":136},[84,1260,231],{"class":139},[84,1262,143],{"class":102},[84,1264,1265],{"class":98},"clean_name",[84,1267,26],{"class":102},[84,1269,151],{"class":98},[84,1271,154],{"class":102},[20,1273,1274,1275,1277],{},"This works because ",[15,1276,1265],{}," becomes an empty string.",[20,1279,1280,1281,1284,1285,1288,1289,1291],{},"Be careful with this pattern. It also replaces other false-like values such as ",[15,1282,1283],{},"0"," and ",[15,1286,1287],{},"\"\"",". If you only want to handle ",[15,1290,25],{},", write it clearly:",[75,1293,1295],{"className":77,"code":1294,"language":79,"meta":80,"style":80},"name = None\nclean_name = \"\" if name is None else name\n\nprint(clean_name.strip())\n",[15,1296,1297,1305,1329,1333],{"__ignoreMap":80},[84,1298,1299,1301,1303],{"class":86,"line":87},[84,1300,91],{"class":90},[84,1302,95],{"class":94},[84,1304,226],{"class":129},[84,1306,1307,1309,1311,1314,1317,1319,1321,1323,1326],{"class":86,"line":106},[84,1308,1242],{"class":90},[84,1310,95],{"class":94},[84,1312,1313],{"class":172}," \"\"",[84,1315,1316],{"class":116}," if",[84,1318,120],{"class":90},[84,1320,123],{"class":94},[84,1322,130],{"class":129},[84,1324,1325],{"class":116}," else",[84,1327,1328],{"class":90}," name\n",[84,1330,1331],{"class":86,"line":113},[84,1332,110],{"emptyLinePlaceholder":109},[84,1334,1335,1337,1339,1341,1343,1345],{"class":86,"line":136},[84,1336,231],{"class":139},[84,1338,143],{"class":102},[84,1340,1265],{"class":98},[84,1342,26],{"class":102},[84,1344,151],{"class":98},[84,1346,154],{"class":102},[70,1348,1350,1351],{"id":1349},"common-patterns-that-return-none","Common patterns that return ",[15,1352,25],{},[20,1354,1355],{},"These often lead to this error:",[51,1357,1358,1363,1367,1372,1377],{},[54,1359,1360,1361],{},"functions without ",[15,1362,391],{},[54,1364,1365],{},[15,1366,335],{},[54,1368,1369],{},[15,1370,1371],{},"list.append()",[54,1373,1374],{},[15,1375,1376],{},"list.extend()",[54,1378,1379],{},[15,1380,1381],{},"dict.update()",[20,1383,1384],{},"Examples:",[75,1386,1388],{"className":77,"code":1387,"language":79,"meta":80,"style":80},"items = [1, 2]\nresult = items.append(3)\n\nprint(result)\nprint(type(result))\n",[15,1389,1390,1407,1426,1430,1440],{"__ignoreMap":80},[84,1391,1392,1395,1397,1399,1401,1403,1405],{"class":86,"line":87},[84,1393,1394],{"class":90},"items ",[84,1396,95],{"class":94},[84,1398,930],{"class":102},[84,1400,1100],{"class":933},[84,1402,937],{"class":102},[84,1404,945],{"class":933},[84,1406,948],{"class":102},[84,1408,1409,1411,1413,1416,1418,1420,1422,1424],{"class":86,"line":106},[84,1410,953],{"class":90},[84,1412,95],{"class":94},[84,1414,1415],{"class":90}," items",[84,1417,26],{"class":102},[84,1419,993],{"class":98},[84,1421,143],{"class":102},[84,1423,934],{"class":933},[84,1425,182],{"class":102},[84,1427,1428],{"class":86,"line":113},[84,1429,110],{"emptyLinePlaceholder":109},[84,1431,1432,1434,1436,1438],{"class":86,"line":136},[84,1433,231],{"class":139},[84,1435,143],{"class":102},[84,1437,978],{"class":98},[84,1439,182],{"class":102},[84,1441,1442,1444,1446,1448,1450,1452],{"class":86,"line":157},[84,1443,231],{"class":139},[84,1445,143],{"class":102},[84,1447,462],{"class":255},[84,1449,143],{"class":102},[84,1451,978],{"class":98},[84,1453,469],{"class":102},[20,1455,245],{},[75,1457,1459],{"className":77,"code":1458,"language":79,"meta":80,"style":80},"None\n\u003Cclass 'NoneType'>\n",[15,1460,1461,1465],{"__ignoreMap":80},[84,1462,1463],{"class":86,"line":87},[84,1464,505],{"class":129},[84,1466,1467,1469,1471,1473,1475,1477],{"class":86,"line":106},[84,1468,510],{"class":94},[84,1470,513],{"class":402},[84,1472,262],{"class":172},[84,1474,265],{"class":176},[84,1476,268],{"class":172},[84,1478,522],{"class":94},[20,1480,1481],{},"Another example:",[75,1483,1485],{"className":77,"code":1484,"language":79,"meta":80,"style":80},"data = {\"a\": 1}\nresult = data.update({\"b\": 2})\n\nprint(result)\n",[15,1486,1487,1510,1541,1545],{"__ignoreMap":80},[84,1488,1489,1492,1494,1497,1499,1501,1503,1505,1507],{"class":86,"line":87},[84,1490,1491],{"class":90},"data ",[84,1493,95],{"class":94},[84,1495,1496],{"class":102}," {",[84,1498,173],{"class":172},[84,1500,309],{"class":176},[84,1502,173],{"class":172},[84,1504,259],{"class":102},[84,1506,940],{"class":933},[84,1508,1509],{"class":102},"}\n",[84,1511,1512,1514,1516,1519,1521,1524,1527,1529,1532,1534,1536,1538],{"class":86,"line":106},[84,1513,953],{"class":90},[84,1515,95],{"class":94},[84,1517,1518],{"class":90}," data",[84,1520,26],{"class":102},[84,1522,1523],{"class":98},"update",[84,1525,1526],{"class":102},"({",[84,1528,173],{"class":172},[84,1530,1531],{"class":176},"b",[84,1533,173],{"class":172},[84,1535,259],{"class":102},[84,1537,945],{"class":933},[84,1539,1540],{"class":102},"})\n",[84,1542,1543],{"class":86,"line":113},[84,1544,110],{"emptyLinePlaceholder":109},[84,1546,1547,1549,1551,1553],{"class":86,"line":136},[84,1548,231],{"class":139},[84,1550,143],{"class":102},[84,1552,978],{"class":98},[84,1554,182],{"class":102},[20,1556,245],{},[75,1558,1559],{"className":77,"code":505,"language":79,"meta":80,"style":80},[15,1560,1561],{"__ignoreMap":80},[84,1562,1563],{"class":86,"line":87},[84,1564,505],{"class":129},[20,1566,1567,1568,1571],{},"These methods change the original object directly. They do ",[731,1569,1570],{},"not"," create and return a new object.",[70,1573,1575],{"id":1574},"step-by-step-debugging","Step-by-step debugging",[20,1577,1578],{},"When you see this error, use this simple process.",[678,1580,1582],{"id":1581},"read-the-full-traceback","Read the full traceback",[20,1584,1585],{},"The traceback shows the exact line that failed.",[20,1587,1588],{},"Start there first.",[678,1590,1592],{"id":1591},"print-the-variable-before-the-failing-line","Print the variable before the failing line",[20,1594,1595],{},"Use small checks like these:",[75,1597,1599],{"className":77,"code":1598,"language":79,"meta":80,"style":80},"print(value)\nprint(type(value))\nprint(value is None)\nprint(repr(value))\n",[15,1600,1601,1611,1625,1639],{"__ignoreMap":80},[84,1602,1603,1605,1607,1609],{"class":86,"line":87},[84,1604,231],{"class":139},[84,1606,143],{"class":102},[84,1608,236],{"class":98},[84,1610,182],{"class":102},[84,1612,1613,1615,1617,1619,1621,1623],{"class":86,"line":106},[84,1614,231],{"class":139},[84,1616,143],{"class":102},[84,1618,462],{"class":255},[84,1620,143],{"class":102},[84,1622,236],{"class":98},[84,1624,469],{"class":102},[84,1626,1627,1629,1631,1633,1635,1637],{"class":86,"line":113},[84,1628,231],{"class":139},[84,1630,143],{"class":102},[84,1632,221],{"class":98},[84,1634,123],{"class":116},[84,1636,130],{"class":129},[84,1638,182],{"class":102},[84,1640,1641,1643,1645,1648,1650,1652],{"class":86,"line":136},[84,1642,231],{"class":139},[84,1644,143],{"class":102},[84,1646,1647],{"class":139},"repr",[84,1649,143],{"class":102},[84,1651,236],{"class":98},[84,1653,469],{"class":102},[20,1655,1656],{},"These are especially useful when you are not sure what the variable contains.",[20,1658,1659],{},"Example:",[75,1661,1663],{"className":77,"code":1662,"language":79,"meta":80,"style":80},"def get_message():\n    # imagine this came from another part of the program\n    return None\n\nmessage = get_message()\n\nprint(message)\nprint(type(message))\nprint(message is None)\nprint(repr(message))\n\nprint(message.strip())\n",[15,1664,1665,1674,1680,1686,1690,1701,1705,1716,1730,1745,1760,1765],{"__ignoreMap":80},[84,1666,1667,1669,1672],{"class":86,"line":87},[84,1668,403],{"class":402},[84,1670,1671],{"class":406}," get_message",[84,1673,409],{"class":102},[84,1675,1676],{"class":86,"line":106},[84,1677,1679],{"class":1678},"sutJx","    # imagine this came from another part of the program\n",[84,1681,1682,1684],{"class":86,"line":113},[84,1683,614],{"class":116},[84,1685,226],{"class":129},[84,1687,1688],{"class":86,"line":136},[84,1689,110],{"emptyLinePlaceholder":109},[84,1691,1692,1695,1697,1699],{"class":86,"line":157},[84,1693,1694],{"class":90},"message ",[84,1696,95],{"class":94},[84,1698,1671],{"class":98},[84,1700,103],{"class":102},[84,1702,1703],{"class":86,"line":165},[84,1704,110],{"emptyLinePlaceholder":109},[84,1706,1707,1709,1711,1714],{"class":86,"line":455},[84,1708,231],{"class":139},[84,1710,143],{"class":102},[84,1712,1713],{"class":98},"message",[84,1715,182],{"class":102},[84,1717,1718,1720,1722,1724,1726,1728],{"class":86,"line":472},[84,1719,231],{"class":139},[84,1721,143],{"class":102},[84,1723,462],{"class":255},[84,1725,143],{"class":102},[84,1727,1713],{"class":98},[84,1729,469],{"class":102},[84,1731,1733,1735,1737,1739,1741,1743],{"class":86,"line":1732},9,[84,1734,231],{"class":139},[84,1736,143],{"class":102},[84,1738,1694],{"class":98},[84,1740,123],{"class":116},[84,1742,130],{"class":129},[84,1744,182],{"class":102},[84,1746,1748,1750,1752,1754,1756,1758],{"class":86,"line":1747},10,[84,1749,231],{"class":139},[84,1751,143],{"class":102},[84,1753,1647],{"class":139},[84,1755,143],{"class":102},[84,1757,1713],{"class":98},[84,1759,469],{"class":102},[84,1761,1763],{"class":86,"line":1762},11,[84,1764,110],{"emptyLinePlaceholder":109},[84,1766,1768,1770,1772,1774,1776,1778],{"class":86,"line":1767},12,[84,1769,231],{"class":139},[84,1771,143],{"class":102},[84,1773,1713],{"class":98},[84,1775,26],{"class":102},[84,1777,151],{"class":98},[84,1779,154],{"class":102},[20,1781,1782],{},"Output before the crash:",[75,1784,1786],{"className":77,"code":1785,"language":79,"meta":80,"style":80},"None\n\u003Cclass 'NoneType'>\nTrue\nNone\n",[15,1787,1788,1792,1806,1811],{"__ignoreMap":80},[84,1789,1790],{"class":86,"line":87},[84,1791,505],{"class":129},[84,1793,1794,1796,1798,1800,1802,1804],{"class":86,"line":106},[84,1795,510],{"class":94},[84,1797,513],{"class":402},[84,1799,262],{"class":172},[84,1801,265],{"class":176},[84,1803,268],{"class":172},[84,1805,522],{"class":94},[84,1807,1808],{"class":86,"line":113},[84,1809,1810],{"class":129},"True\n",[84,1812,1813],{"class":86,"line":136},[84,1814,505],{"class":129},[678,1816,1818],{"id":1817},"trace-backward-to-where-the-value-was-assigned","Trace backward to where the value was assigned",[20,1820,1821],{},"If this line fails:",[75,1823,1825],{"className":77,"code":1824,"language":79,"meta":80,"style":80},"print(profile.get(\"name\").strip())\n",[15,1826,1827],{"__ignoreMap":80},[84,1828,1829,1831,1833,1836,1838,1841,1843,1845,1847,1849,1852,1854],{"class":86,"line":87},[84,1830,231],{"class":139},[84,1832,143],{"class":102},[84,1834,1835],{"class":98},"profile",[84,1837,26],{"class":102},[84,1839,1840],{"class":98},"get",[84,1842,143],{"class":102},[84,1844,173],{"class":172},[84,1846,146],{"class":176},[84,1848,173],{"class":172},[84,1850,1851],{"class":102},").",[84,1853,151],{"class":98},[84,1855,154],{"class":102},[20,1857,1858,1859,1861],{},"the problem may not be ",[15,1860,38],{}," itself.",[20,1863,1864],{},"It may be:",[51,1866,1867,1873,1881],{},[54,1868,1869,1006,1871],{},[15,1870,1835],{},[15,1872,25],{},[54,1874,1875,1878,1879],{},[15,1876,1877],{},"profile.get(\"name\")"," returned ",[15,1880,25],{},[54,1882,1883,1884,1887,1888],{},"the ",[15,1885,1886],{},"\"name\""," key exists but its value is ",[15,1889,25],{},[20,1891,1892],{},"A safer version is:",[75,1894,1896],{"className":77,"code":1895,"language":79,"meta":80,"style":80},"profile = {\"name\": None}\n\nname = profile.get(\"name\")\n\nif name is not None:\n    print(name.strip())\nelse:\n    print(\"Name is missing\")\n",[15,1897,1898,1919,1923,1946,1950,1964,1978,1984],{"__ignoreMap":80},[84,1899,1900,1903,1905,1907,1909,1911,1913,1915,1917],{"class":86,"line":87},[84,1901,1902],{"class":90},"profile ",[84,1904,95],{"class":94},[84,1906,1496],{"class":102},[84,1908,173],{"class":172},[84,1910,146],{"class":176},[84,1912,173],{"class":172},[84,1914,259],{"class":102},[84,1916,130],{"class":129},[84,1918,1509],{"class":102},[84,1920,1921],{"class":86,"line":106},[84,1922,110],{"emptyLinePlaceholder":109},[84,1924,1925,1927,1929,1932,1934,1936,1938,1940,1942,1944],{"class":86,"line":113},[84,1926,91],{"class":90},[84,1928,95],{"class":94},[84,1930,1931],{"class":90}," profile",[84,1933,26],{"class":102},[84,1935,1840],{"class":98},[84,1937,143],{"class":102},[84,1939,173],{"class":172},[84,1941,146],{"class":176},[84,1943,173],{"class":172},[84,1945,182],{"class":102},[84,1947,1948],{"class":86,"line":136},[84,1949,110],{"emptyLinePlaceholder":109},[84,1951,1952,1954,1956,1958,1960,1962],{"class":86,"line":157},[84,1953,117],{"class":116},[84,1955,120],{"class":90},[84,1957,123],{"class":94},[84,1959,126],{"class":94},[84,1961,130],{"class":129},[84,1963,133],{"class":102},[84,1965,1966,1968,1970,1972,1974,1976],{"class":86,"line":165},[84,1967,140],{"class":139},[84,1969,143],{"class":102},[84,1971,146],{"class":98},[84,1973,26],{"class":102},[84,1975,151],{"class":98},[84,1977,154],{"class":102},[84,1979,1980,1982],{"class":86,"line":455},[84,1981,160],{"class":116},[84,1983,133],{"class":102},[84,1985,1986,1988,1990,1992,1995,1997],{"class":86,"line":472},[84,1987,140],{"class":139},[84,1989,143],{"class":102},[84,1991,173],{"class":172},[84,1993,1994],{"class":176},"Name is missing",[84,1996,173],{"class":172},[84,1998,182],{"class":102},[20,2000,2001,2002,2004,2005,26],{},"If you need help understanding ",[15,2003,45],{},", see ",[309,2006,2007],{"href":369},"Python dictionary get() method",[678,2009,2011],{"id":2010},"check-return-values-from-functions-and-methods","Check return values from functions and methods",[20,2013,2014],{},"A lot of beginners assume every function returns something useful.",[20,2016,2017],{},"That is not always true.",[20,2019,2020],{},"If needed, print the result right away:",[75,2022,2024],{"className":77,"code":2023,"language":79,"meta":80,"style":80},"result = some_function()\nprint(result)\n",[15,2025,2026,2037],{"__ignoreMap":80},[84,2027,2028,2030,2032,2035],{"class":86,"line":87},[84,2029,953],{"class":90},[84,2031,95],{"class":94},[84,2033,2034],{"class":98}," some_function",[84,2036,103],{"class":102},[84,2038,2039,2041,2043,2045],{"class":86,"line":106},[84,2040,231],{"class":139},[84,2042,143],{"class":102},[84,2044,978],{"class":98},[84,2046,182],{"class":102},[70,2048,2050],{"id":2049},"ways-to-prevent-the-error","Ways to prevent the error",[20,2052,2053],{},"You can avoid this error more often by using a few good habits:",[51,2055,2056,2059,2062,2067,2070],{},[54,2057,2058],{},"Return values clearly from functions",[54,2060,2061],{},"Use descriptive variable names",[54,2063,2064,2065],{},"Avoid chaining methods when a value may be ",[15,2066,25],{},[54,2068,2069],{},"Handle missing data early",[54,2071,2072,2073],{},"Use guard checks like ",[15,2074,2075],{},"if value is not None",[20,2077,2078],{},"For example, this is risky:",[75,2080,2082],{"className":77,"code":2081,"language":79,"meta":80,"style":80},"print(get_user_name().strip().title())\n",[15,2083,2084],{"__ignoreMap":80},[84,2085,2086,2088,2090,2093,2096,2098,2100,2102],{"class":86,"line":87},[84,2087,231],{"class":139},[84,2089,143],{"class":102},[84,2091,2092],{"class":98},"get_user_name",[84,2094,2095],{"class":102},"().",[84,2097,151],{"class":98},[84,2099,2095],{"class":102},[84,2101,780],{"class":98},[84,2103,154],{"class":102},[20,2105,1142,2106,2109,2110,2112],{},[15,2107,2108],{},"get_user_name()"," returns ",[15,2111,25],{},", the whole chain fails.",[20,2114,2115],{},"This is safer:",[75,2117,2119],{"className":77,"code":2118,"language":79,"meta":80,"style":80},"name = get_user_name()\n\nif name is not None:\n    print(name.strip().title())\nelse:\n    print(\"No user name available\")\n",[15,2120,2121,2131,2135,2149,2167,2173],{"__ignoreMap":80},[84,2122,2123,2125,2127,2129],{"class":86,"line":87},[84,2124,91],{"class":90},[84,2126,95],{"class":94},[84,2128,702],{"class":98},[84,2130,103],{"class":102},[84,2132,2133],{"class":86,"line":106},[84,2134,110],{"emptyLinePlaceholder":109},[84,2136,2137,2139,2141,2143,2145,2147],{"class":86,"line":113},[84,2138,117],{"class":116},[84,2140,120],{"class":90},[84,2142,123],{"class":94},[84,2144,126],{"class":94},[84,2146,130],{"class":129},[84,2148,133],{"class":102},[84,2150,2151,2153,2155,2157,2159,2161,2163,2165],{"class":86,"line":136},[84,2152,140],{"class":139},[84,2154,143],{"class":102},[84,2156,146],{"class":98},[84,2158,26],{"class":102},[84,2160,151],{"class":98},[84,2162,2095],{"class":102},[84,2164,780],{"class":98},[84,2166,154],{"class":102},[84,2168,2169,2171],{"class":86,"line":157},[84,2170,160],{"class":116},[84,2172,133],{"class":102},[84,2174,2175,2177,2179,2181,2184,2186],{"class":86,"line":165},[84,2176,140],{"class":139},[84,2178,143],{"class":102},[84,2180,173],{"class":172},[84,2182,2183],{"class":176},"No user name available",[84,2185,173],{"class":172},[84,2187,182],{"class":102},[20,2189,2190,2191,1284,2195,26],{},"You can also use exception handling, but in this case it is usually better to prevent the problem before it happens. If you want to learn more, see ",[309,2192,2194],{"href":2193},"\u002Flearn\u002Fusing-try-except-else-and-finally-in-python\u002F","using try, except, else, and finally in Python",[309,2196,2198],{"href":2197},"\u002Fhow-to\u002Fhow-to-handle-exceptions-in-python\u002F","how to handle exceptions in Python",[70,2200,2202],{"id":2201},"faq","FAQ",[678,2204,2206],{"id":2205},"what-is-nonetype-in-python","What is NoneType in Python?",[20,2208,2209,296,2211,2213],{},[15,2210,265],{},[15,2212,25],{},". It represents the absence of a value.",[678,2215,2217],{"id":2216},"why-did-my-function-return-none","Why did my function return None?",[20,2219,2220,2221,2223,2224,2226],{},"If a function has no ",[15,2222,391],{}," statement, Python returns ",[15,2225,25],{}," automatically.",[678,2228,2230],{"id":2229},"why-does-listsort-lead-to-this-error-sometimes","Why does list.sort() lead to this error sometimes?",[20,2232,2233,2237,2238,2240],{},[309,2234,2235],{"href":332},[15,2236,335],{}," changes the list in place and returns ",[15,2239,25],{},". You should not assign its result to a new variable.",[678,2242,2244],{"id":2243},"should-i-use-try-except-to-fix-this","Should I use try-except to fix this?",[20,2246,2247,2248,2250],{},"Usually no. It is better to find why the value is ",[15,2249,25],{}," and handle it before accessing attributes.",[70,2252,2254],{"id":2253},"see-also","See also",[51,2256,2257,2261,2267,2273,2278,2283],{},[54,2258,2259],{},[309,2260,312],{"href":311},[54,2262,2263],{},[309,2264,2266],{"href":2265},"\u002Ferrors\u002Fattributeerror-object-has-no-attribute-fix\u002F","AttributeError: object has no attribute",[54,2268,2269],{},[309,2270,2272],{"href":2271},"\u002Ferrors\u002Fattributeerror-in-python-causes-and-fixes\u002F","AttributeError in Python: causes and fixes",[54,2274,2275],{},[309,2276,2277],{"href":668},"Return values in Python functions",[54,2279,2280],{},[309,2281,2282],{"href":332},"Python list sort() method",[54,2284,2285],{},[309,2286,2007],{"href":369},[2288,2289,2290],"style",{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sFwrP, html code.shiki .sFwrP{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}",{"title":80,"searchDepth":106,"depth":106,"links":2292},[2293,2294,2295,2296,2297,2305,2307,2313,2314,2320],{"id":72,"depth":106,"text":73},{"id":198,"depth":106,"text":199},{"id":315,"depth":106,"text":316},{"id":384,"depth":106,"text":385},{"id":672,"depth":106,"text":673,"children":2298},[2299,2300,2301,2302,2304],{"id":680,"depth":113,"text":681},{"id":742,"depth":113,"text":743},{"id":904,"depth":113,"text":905},{"id":1135,"depth":113,"text":2303},"4. Use an if check before accessing attributes",{"id":1217,"depth":113,"text":1218},{"id":1349,"depth":106,"text":2306},"Common patterns that return None",{"id":1574,"depth":106,"text":1575,"children":2308},[2309,2310,2311,2312],{"id":1581,"depth":113,"text":1582},{"id":1591,"depth":113,"text":1592},{"id":1817,"depth":113,"text":1818},{"id":2010,"depth":113,"text":2011},{"id":2049,"depth":106,"text":2050},{"id":2201,"depth":106,"text":2202,"children":2315},[2316,2317,2318,2319],{"id":2205,"depth":113,"text":2206},{"id":2216,"depth":113,"text":2217},{"id":2229,"depth":113,"text":2230},{"id":2243,"depth":113,"text":2244},{"id":2253,"depth":106,"text":2254},"Master attributeerror nonetype object has no attribute fix in our comprehensive Python beginner guide.","md",{},"\u002Ferrors\u002Fattributeerror-nonetype-object-has-no-attribute-fix",{"title":5,"description":2321},"errors\u002Fattributeerror-nonetype-object-has-no-attribute-fix","GXsU0J7twFxgVJKQnKbPzJz5dErRlHtM0SO3-yiWRQ8",1777585501235]