{ "cells": [ { "cell_type": "code", "execution_count": 2, "id": "726843f4-99a4-41bc-8d93-af525dc038a3", "metadata": { "ExecuteTime": { "end_time": "2023-06-15T08:01:53.459031800Z", "start_time": "2023-06-15T08:01:53.428235200Z" } }, "outputs": [ { "data": { "text/plain": "'Clay'" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "2023" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": ">" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Hi!\n" ] }, { "data": { "text/plain": "__main__.Golem" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "str" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "int" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "method" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "method" }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", "g = Golem('Clay')\n", "g.name\n", "g.built_year\n", "g.say_hi\n", "g.say_hi()\n", "type(g)\n", "type(g.name)\n", "type(g.built_year)\n", "type(g.__init__)\n", "type(g.say_hi)" ] }, { "cell_type": "code", "execution_count": 4, "outputs": [ { "data": { "text/plain": ">" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Can't you see? I'm running...\n" ] }, { "data": { "text/plain": "'Clay'" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "2023" }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Hi!\n" ] } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", "class Running_Golem(Golem):\n", "\n", " def run(self):\n", " print(\"Can't you see? I'm running...\")\n", "\n", "rg = Running_Golem('Clay')\n", "\n", "rg.run\n", "rg.run()\n", "rg.name\n", "rg.built_year\n", "rg.say_hi()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:06:54.529442700Z", "start_time": "2023-06-15T08:06:54.509561100Z" } } }, { "cell_type": "code", "execution_count": 5, "outputs": [ { "data": { "text/plain": ">" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Can't you see? I'm running...\n" ] }, { "data": { "text/plain": "'Clay'" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "2023" }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Hi! Nice day, Huh?\n" ] } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", "class Running_Golem(Golem):\n", "\n", " def run(self):\n", " print(\"Can't you see? I'm running...\")\n", "\n", " def say_hi(self):\n", " print('Hi! Nice day, Huh?')\n", "\n", "rg = Running_Golem('Clay')\n", "\n", "rg.run\n", "rg.run()\n", "rg.name\n", "rg.built_year\n", "rg.say_hi()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:08:02.232573600Z", "start_time": "2023-06-15T08:08:02.142092Z" } } }, { "cell_type": "code", "execution_count": 6, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on Running_Golem in module __main__ object:\n", "\n", "class Running_Golem(Golem)\n", " | Running_Golem(name=None)\n", " | \n", " | Method resolution order:\n", " | Running_Golem\n", " | Golem\n", " | builtins.object\n", " | \n", " | Methods defined here:\n", " | \n", " | run(self)\n", " | \n", " | say_hi(self)\n", " | \n", " | ----------------------------------------------------------------------\n", " | Methods inherited from Golem:\n", " | \n", " | __init__(self, name=None)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors inherited from Golem:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", "\n" ] }, { "data": { "text/plain": "['__class__',\n '__delattr__',\n '__dict__',\n '__dir__',\n '__doc__',\n '__eq__',\n '__format__',\n '__ge__',\n '__getattribute__',\n '__getstate__',\n '__gt__',\n '__hash__',\n '__init__',\n '__init_subclass__',\n '__le__',\n '__lt__',\n '__module__',\n '__ne__',\n '__new__',\n '__reduce__',\n '__reduce_ex__',\n '__repr__',\n '__setattr__',\n '__sizeof__',\n '__str__',\n '__subclasshook__',\n '__weakref__',\n 'built_year',\n 'name',\n 'run',\n 'say_hi']" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "{'name': 'Clay', 'built_year': 2023}" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "True" }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", "class Running_Golem(Golem):\n", "\n", " def run(self):\n", " print('Can\\'t you see? I\\'m running...')\n", "\n", " def say_hi(self):\n", " print('Hi! Nice day, Huh?')\n", "\n", "rg = Running_Golem('Clay')\n", "\n", "help(rg)\n", "dir(rg)\n", "rg.__dict__\n", "hasattr(rg, 'built_year')" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:09:48.581157600Z", "start_time": "2023-06-15T08:09:48.562887800Z" } } }, { "cell_type": "code", "execution_count": 8, "outputs": [ { "data": { "text/plain": "True" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "True" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "False" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "False" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "False" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "1" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "10" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "11" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "10" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "10" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "True" }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", " population = 0\n", " __life_span = 10\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", " self.__active = True\n", " Golem.population += 1\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", " def cease(self):\n", " self.__active = False\n", " Golem.population -= 1\n", "\n", " def is_active(self):\n", " if datetime.date.today().year - self.built_year >= Golem.__life_span:\n", " self.cease()\n", " return self.__active\n", "\n", "g = Golem()\n", "hasattr(Golem, 'population')\n", "hasattr(g, 'population')\n", "hasattr(Golem, '__life_span')\n", "hasattr(g, '__life_span')\n", "hasattr(g, '__active')\n", "Golem.population\n", "setattr(Golem, 'population', 10)\n", "Golem.population\n", "x = Golem()\n", "Golem.population\n", "x.cease()\n", "Golem.population\n", "getattr(g, 'population')\n", "g.is_active()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:18:02.767773400Z", "start_time": "2023-06-15T08:18:02.712793300Z" } } }, { "cell_type": "code", "execution_count": 11, "outputs": [ { "data": { "text/plain": ">" }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "1" }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", " __population = 0\n", " __life_span = 10\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", " self.__active = True\n", " Golem.__population += 1\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", " def cease(self):\n", " self.__active = False\n", " Golem.__population -= 1\n", "\n", " def is_active(self):\n", " if datetime.date.today().year - self.built_year >= Golem.__life_span:\n", " self.cease()\n", " return self.__active\n", "\n", " def population(self):\n", " return Golem.__population\n", "\n", "g = Golem('Clay')\n", "g.population\n", "g.population()" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:24:16.538713500Z", "start_time": "2023-06-15T08:24:16.524642600Z" } } }, { "cell_type": "code", "execution_count": 13, "outputs": [ { "data": { "text/plain": "" }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", " __population = 0\n", " __life_span = 10\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", " self.__active = True\n", " Golem.__population += 1\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", " def cease(self):\n", " self.__active = False\n", " Golem.population -= 1\n", "\n", " def is_active(self):\n", " if datetime.date.today().year - self.built_year >= Golem.__life_span:\n", " self.cease()\n", " return self.__active\n", "\n", " @property\n", " def population(self):\n", " return Golem.population\n", "\n", "g = Golem('Clay')\n", "g.population\n", "# g.population = 100" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:29:09.532026600Z", "start_time": "2023-06-15T08:29:09.478366200Z" } } }, { "cell_type": "code", "execution_count": 14, "outputs": [ { "data": { "text/plain": "" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Help on class Golem in module __main__:\n", "\n", "class Golem(builtins.object)\n", " | Golem(name=None)\n", " | \n", " | Methods defined here:\n", " | \n", " | __init__(self, name=None)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | cease(self)\n", " | \n", " | is_active(self)\n", " | \n", " | say_hi(self)\n", " | \n", " | ----------------------------------------------------------------------\n", " | Data descriptors defined here:\n", " | \n", " | __dict__\n", " | dictionary for instance variables (if defined)\n", " | \n", " | __weakref__\n", " | list of weak references to the object (if defined)\n", " | \n", " | population\n", "\n" ] }, { "data": { "text/plain": "mappingproxy({'__module__': '__main__',\n '_Golem__population': 101,\n '_Golem__life_span': 10,\n '__init__': ,\n 'say_hi': ,\n 'cease': ,\n 'is_active': ,\n 'population': ,\n '__dict__': ,\n '__weakref__': ,\n '__doc__': None})" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "{'name': 'Clay', 'built_year': 2023, '_Golem__active': True}" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "True" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "10000" }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.interactiveshell import InteractiveShell\n", "InteractiveShell.ast_node_interactivity = \"all\"\n", "import datetime\n", "\n", "class Golem:\n", " __population = 0\n", " __life_span = 10\n", "\n", " def __init__(self, name=None):\n", " self.name = name\n", " self.built_year = datetime.date.today().year\n", " self.__active = True\n", " Golem.__population += 1\n", "\n", " def say_hi(self):\n", " print('Hi!')\n", "\n", " def cease(self):\n", " self.__active = False\n", " Golem.__population -= 1\n", "\n", " def is_active(self):\n", " if datetime.date.today().year - self.built_year >= Golem.__life_span:\n", " self.cease()\n", " return self.__active\n", "\n", " @property\n", " def population(self):\n", " return Golem.population\n", "\n", " @population.setter\n", " def population(self, value):\n", " Golem.__population = value\n", "\n", "g = Golem('Clay')\n", "g.population\n", "g.population = 100\n", "ga = Golem('New')\n", "g.population\n", "ga.population\n", "help(Golem)\n", "Golem.__dict__\n", "g.__dict__\n", "hasattr(Golem, 'population')\n", "getattr(Golem, 'population')\n", "setattr(Golem, 'population', 10000)\n", "g.population" ], "metadata": { "collapsed": false, "ExecuteTime": { "end_time": "2023-06-15T08:29:27.143013600Z", "start_time": "2023-06-15T08:29:27.066281400Z" } } }, { "cell_type": "code", "execution_count": null, "outputs": [], "source": [], "metadata": { "collapsed": false } } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 5 }