{"id":47803,"date":"2020-06-05T15:14:00","date_gmt":"2020-06-05T19:14:00","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=47803"},"modified":"2022-11-21T09:45:40","modified_gmt":"2022-11-21T14:45:40","slug":"python-function-tutorial-part-ix","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/","title":{"rendered":"Python Function Tutorial \u2013 Part IX"},"content":{"rendered":"\n<p><em>See the previous installment in this series, <a href=\"\/campus\/ibkr-quant-news\/python-function-tutorial-part-viii\/\">DocStrings<\/a>, to get up-to-date in this tutorial.<\/em><\/p>\n\n\n\n<p><strong>Nested Python functions and non-local variable<\/strong><\/p>\n\n\n\n<p>A nested Python function is a function that is defined inside another function. The syntax for the nested function is the same as that of any other Python function. Though the applications of nested functions are complex in nature and limited at times, even in the quant domain, it is worth mentioning, as we might encounter this out there in the wild. Below is an example which demonstrates the nested Python functions.<\/p>\n\n\n\n<p style=\"background-color:#fcfcdb;font-size:11px\" class=\"has-background\">\n# Defining nested function<br>\ndef outer():<br>\n &#8220;&#8221;&#8221; This is an enclosing function &#8220;&#8221;&#8221;<br>\n def inner():<br>\n &#8220;&#8221;&#8221; This is a nested function &#8220;&#8221;&#8221;<br>\n print(&#8216;Got printed from the nested function.&#8217;)<br>\n print(&#8216;Got printed from the outer function.&#8217;)<br>\n inner()  \n<\/p>\n\n\n\n<p>We define the Python function&nbsp;<code>outer<\/code>&nbsp;which nests another Python function&nbsp;<code>inner<\/code>&nbsp;within it. The&nbsp;<code>outer<\/code>&nbsp;function is referred to as an&nbsp;<em>enclosing<\/em>&nbsp;function and&nbsp;<code>inner<\/code>&nbsp;is known as&nbsp;<em>nested<\/em>&nbsp;function. They are also referred to as&nbsp;<em>inner<\/em>&nbsp;functions sometimes. Upon calling the&nbsp;<code>outer<\/code>&nbsp;function, Python will, in turn, call the&nbsp;<code>inner<\/code>&nbsp;function nested inside it and execute it. The output for the same is shown below:<\/p>\n\n\n\n<p><p style=\"background-color:#fcfcdb;font-size:11px\" class=\"has-background\">\n# Calling the &#8216;outer&#8217; function<br>\nouter()<br>\n# Output<br>\nGot printed from the outer function.<br>\nGot printed from the nested function.<br>\n<\/p><\/p>\n\n\n\n<p>The output we got here is intuitive. First, the&nbsp;<code>print<\/code>&nbsp;statement within the&nbsp;<code>outer<\/code>&nbsp;function got executed, followed by the&nbsp;<code>print<\/code>&nbsp;statement in the&nbsp;<code>inner<\/code>&nbsp;function. Additionally, nested functions can access variables of the enclosing functions. i.e. variables defined in the outer function can be accessed by the inner function. However, the inner or the nested Python function cannot modify the variables defined in the outer or enclosing Python function.<\/p>\n\n\n\n<p style=\"background-color:#fcfcdb;font-size:11px\" class=\"has-background\">\ndef outer(n):<br>\n number = n<br>\n def inner():<br>\n print(&#8216;Number =&#8217;, number)<br>\n inner()\n<\/p>\n\n\n\n<p>A call to&nbsp;<code>outer<\/code>&nbsp;function will print the following<\/p>\n\n\n\n<p style=\"background-color:#fcfcdb;font-size:11px\" class=\"has-background\">\nouter(5)<br>\n# Output<br>\nNumber = 5<br>\n<\/p>\n\n\n\n<p>Though the variable&nbsp;<code>number<\/code>&nbsp;is not defined within&nbsp;<code>inner<\/code>&nbsp;function, it is able to access and print the&nbsp;<code>number<\/code>. This is possible because of scope mechanism that Python provided. We discuss more on this in the following section. Now consider, what if we want the nested Python function to modify the variable that is declared in the enclosing Python function. The default behavior of Python does not allow this. If we try to modify it, we will be presented with an error. To handle such a situation, the keyword&nbsp;<code>nonlocal<\/code>&nbsp;comes to the rescue.<\/p>\n\n\n\n<p>In the nested Python function, we use the keyword&nbsp;<code>nonlocal<\/code>&nbsp;to create and change the variables defined in the enclosing Python function. In the example that follows, we alter the value of the variable&nbsp;<code>number<\/code>.<\/p>\n\n\n\n<p style=\"background-color:#fcfcdb;font-size:11px\" class=\"has-background\">\ndef outer(n):<br>\n number = n<br>\n def inner():<br>\n nonlocal number<br>\n number = number ** 2<br>\n print(&#8216;Square of number =&#8217;, number)<br>\n print(&#8216;Number =&#8217;, number)<br>\n inner()<br>\n print(&#8216;Number =&#8217;, number)\n<\/p>\n\n\n\n<p>A call to the&nbsp;<code>outer<\/code>&nbsp;Python function will now print the number passed as an argument to it, the square of it and the newly updated number (which is nothing but the squared number only).<\/p>\n\n\n\n<p style=\"background-color:#fcfcdb;font-size:11px\" class=\"has-background\">\nouter(3)<br>\n# Output<br>\nNumber = 3<br>\nSquare of number = 9<br>\nNumber = 9<br>\n<\/p>\n\n\n\n<p>Remember, assigning a value to a variable will only create or change the variable within a particular Python function (or a scope) unless they are declared using the nonlocal statement.<\/p>\n\n\n\n<p><em>In the next installment, the author will provide code for Variable Namespace and Scope<\/em>.<\/p>\n\n\n\n<p>Visit&nbsp;<a href=\"https:\/\/www.quantinsti.com\/\">https:\/\/www.quantinsti.com\/<\/a>&nbsp;for ready-to-use Python functions as applied in trading and data analysis.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular Python function (or a scope). <\/p>\n","protected":false},"author":328,"featured_media":44932,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[339,343,349,338,350,341,344],"tags":[851,5615,806,5614,852,7739,595],"contributors-categories":[13654],"class_list":{"0":"post-47803","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-data-science","8":"category-programing-languages","9":"category-python-development","10":"category-ibkr-quant-news","11":"category-quant-asia-pacific","12":"category-quant-development","13":"category-quant-regions","14":"tag-algo-trading","15":"tag-argument","16":"tag-data-science","17":"tag-lambda","18":"tag-machine-learning","19":"tag-nested-python-functions","20":"tag-python","21":"contributors-categories-quantinsti"},"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Python Function Tutorial \u2013 Part IX | IBKR Quant<\/title>\n<meta name=\"description\" content=\"Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/47803\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Function Tutorial \u2013 Part IX | IBKR Quant Blog\" \/>\n<meta property=\"og:description\" content=\"Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular Python function (or a scope).\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-05T19:14:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-21T14:45:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"900\" \/>\n\t<meta property=\"og:image:height\" content=\"550\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jay Parmar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jay Parmar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\\\/\\\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"NewsArticle\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Jay Parmar\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/e77e7794714e57aa7d6e8ec9be051768\"\n\t            },\n\t            \"headline\": \"Python Function Tutorial \u2013 Part IX\",\n\t            \"datePublished\": \"2020-06-05T19:14:00+00:00\",\n\t            \"dateModified\": \"2022-11-21T14:45:40+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/\"\n\t            },\n\t            \"wordCount\": 586,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/05\\\/python-mag-glass.jpg\",\n\t            \"keywords\": [\n\t                \"Algo Trading\",\n\t                \"Argument\",\n\t                \"Data Science\",\n\t                \"Lambda\",\n\t                \"Machine Learning\",\n\t                \"Nested Python Functions\",\n\t                \"Python\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Data Science\",\n\t                \"Programming Languages\",\n\t                \"Python Development\",\n\t                \"Quant\",\n\t                \"Quant Asia Pacific\",\n\t                \"Quant Development\",\n\t                \"Quant Regions\"\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/\",\n\t            \"name\": \"Python Function Tutorial \u2013 Part IX | IBKR Quant Blog\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/05\\\/python-mag-glass.jpg\",\n\t            \"datePublished\": \"2020-06-05T19:14:00+00:00\",\n\t            \"dateModified\": \"2022-11-21T14:45:40+00:00\",\n\t            \"description\": \"Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular Python function (or a scope).\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/ibkr-quant-news\\\/python-function-tutorial-part-ix\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/05\\\/python-mag-glass.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2020\\\/05\\\/python-mag-glass.jpg\",\n\t            \"width\": 900,\n\t            \"height\": 550,\n\t            \"caption\": \"Python\"\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"name\": \"IBKR Campus US\",\n\t            \"description\": \"Financial Education from Interactive Brokers\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\",\n\t            \"name\": \"Interactive Brokers\",\n\t            \"alternateName\": \"IBKR\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\",\n\t                \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"width\": 669,\n\t                \"height\": 669,\n\t                \"caption\": \"Interactive Brokers\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\"\n\t            },\n\t            \"publishingPrinciples\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/about-ibkr-campus\\\/\",\n\t            \"ethicsPolicy\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/cyber-security-notice\\\/\"\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/e77e7794714e57aa7d6e8ec9be051768\",\n\t            \"name\": \"Jay Parmar\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/jayparmar\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python Function Tutorial \u2013 Part IX | IBKR Quant","description":"Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/47803\/","og_locale":"en_US","og_type":"article","og_title":"Python Function Tutorial \u2013 Part IX | IBKR Quant Blog","og_description":"Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular Python function (or a scope).","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/","og_site_name":"IBKR Campus US","article_published_time":"2020-06-05T19:14:00+00:00","article_modified_time":"2022-11-21T14:45:40+00:00","og_image":[{"width":900,"height":550,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg","type":"image\/jpeg"}],"author":"Jay Parmar","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jay Parmar","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/#article","isPartOf":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/"},"author":{"name":"Jay Parmar","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/e77e7794714e57aa7d6e8ec9be051768"},"headline":"Python Function Tutorial \u2013 Part IX","datePublished":"2020-06-05T19:14:00+00:00","dateModified":"2022-11-21T14:45:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/"},"wordCount":586,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg","keywords":["Algo Trading","Argument","Data Science","Lambda","Machine Learning","Nested Python Functions","Python"],"articleSection":["Data Science","Programming Languages","Python Development","Quant","Quant Asia Pacific","Quant Development","Quant Regions"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/","url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/","name":"Python Function Tutorial \u2013 Part IX | IBKR Quant Blog","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/#primaryimage"},"image":{"@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg","datePublished":"2020-06-05T19:14:00+00:00","dateModified":"2022-11-21T14:45:40+00:00","description":"Join QuantInsti for a tutorial on Nested Python functions and non-local variables. Find out how assigning a value to a variable affects a particular Python function (or a scope).","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/python-function-tutorial-part-ix\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg","width":900,"height":550,"caption":"Python"},{"@type":"WebSite","@id":"https:\/\/ibkrcampus.com\/campus\/#website","url":"https:\/\/ibkrcampus.com\/campus\/","name":"IBKR Campus US","description":"Financial Education from Interactive Brokers","publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ibkrcampus.com\/campus\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ibkrcampus.com\/campus\/#organization","name":"Interactive Brokers","alternateName":"IBKR","url":"https:\/\/ibkrcampus.com\/campus\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","width":669,"height":669,"caption":"Interactive Brokers"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/"},"publishingPrinciples":"https:\/\/www.interactivebrokers.com\/campus\/about-ibkr-campus\/","ethicsPolicy":"https:\/\/www.interactivebrokers.com\/campus\/cyber-security-notice\/"},{"@type":"Person","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/e77e7794714e57aa7d6e8ec9be051768","name":"Jay Parmar","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/jayparmar\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2020\/05\/python-mag-glass.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/47803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/users\/328"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=47803"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/47803\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/44932"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=47803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=47803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=47803"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=47803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}