mirror of
https://github.com/python/cpython.git
synced 2024-11-25 09:39:56 +01:00
c0b0c2f201
Useful for introspection and consistent with functions and other descriptors.
121 lines
2.1 KiB
Python
121 lines
2.1 KiB
Python
# line 1
|
|
'A module docstring.'
|
|
|
|
import inspect
|
|
# line 5
|
|
|
|
# line 7
|
|
def spam(a, /, b, c, d=3, e=4, f=5, *g, **h):
|
|
eggs(b + d, c + f)
|
|
|
|
# line 11
|
|
def eggs(x, y):
|
|
"A docstring."
|
|
global fr, st
|
|
fr = inspect.currentframe()
|
|
st = inspect.stack()
|
|
p = x
|
|
q = y / 0
|
|
|
|
# line 20
|
|
class StupidGit:
|
|
"""A longer,
|
|
|
|
indented
|
|
|
|
docstring."""
|
|
# line 27
|
|
|
|
def abuse(self, a, b, c):
|
|
"""Another
|
|
|
|
\tdocstring
|
|
|
|
containing
|
|
|
|
\ttabs
|
|
\t
|
|
"""
|
|
self.argue(a, b, c)
|
|
# line 40
|
|
def argue(self, a, b, c):
|
|
try:
|
|
spam(a, b, c)
|
|
except BaseException as e:
|
|
self.ex = e
|
|
self.tr = inspect.trace()
|
|
|
|
@property
|
|
def contradiction(self):
|
|
'The automatic gainsaying.'
|
|
pass
|
|
|
|
# line 53
|
|
class MalodorousPervert(StupidGit):
|
|
def abuse(self, a, b, c):
|
|
pass
|
|
|
|
@property
|
|
def contradiction(self):
|
|
pass
|
|
|
|
Tit = MalodorousPervert
|
|
|
|
class ParrotDroppings:
|
|
pass
|
|
|
|
class FesteringGob(MalodorousPervert, ParrotDroppings):
|
|
def abuse(self, a, b, c):
|
|
pass
|
|
|
|
def _getter(self):
|
|
pass
|
|
contradiction = property(_getter)
|
|
|
|
async def lobbest(grenade):
|
|
pass
|
|
|
|
currentframe = inspect.currentframe()
|
|
try:
|
|
raise Exception()
|
|
except BaseException as e:
|
|
tb = e.__traceback__
|
|
|
|
class Callable:
|
|
def __call__(self, *args):
|
|
return args
|
|
|
|
def as_method_of(self, obj):
|
|
from types import MethodType
|
|
return MethodType(self, obj)
|
|
|
|
custom_method = Callable().as_method_of(42)
|
|
del Callable
|
|
|
|
# line 95
|
|
class WhichComments:
|
|
# line 97
|
|
# before f
|
|
def f(self):
|
|
# line 100
|
|
# start f
|
|
return 1
|
|
# line 103
|
|
# end f
|
|
# line 105
|
|
# after f
|
|
|
|
# before asyncf - line 108
|
|
async def asyncf(self):
|
|
# start asyncf
|
|
return 2
|
|
# end asyncf
|
|
# after asyncf - line 113
|
|
# end of WhichComments - line 114
|
|
# after WhichComments - line 115
|
|
|
|
# Test that getsource works on a line that includes
|
|
# a closing parenthesis with the opening paren being in another line
|
|
(
|
|
); after_closing = lambda: 1
|