Bound Method or Plain Function

class Greeter:
    def greet(self, name):
        return f"hello {name}"

g = Greeter()

print(type(Greeter.greet).__name__)
print(type(g.greet).__name__)
print(g.greet.__self__ is g)

What is printed?

A

method, then function, then False

B

function, then method, then True

C

method, then method, then True

D

function, then function, then False