mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
47 lines
816 B
Python
47 lines
816 B
Python
assert isinstance(dir(), list)
|
|
assert "__builtins__" in dir()
|
|
|
|
|
|
class A:
|
|
def test():
|
|
pass
|
|
|
|
|
|
a = A()
|
|
|
|
assert "test" in dir(a), "test not in a"
|
|
assert "test" in dir(A), "test not in A"
|
|
|
|
a.x = 3
|
|
assert "x" in dir(a), "x not in a"
|
|
|
|
|
|
class B(A):
|
|
def __dir__(self):
|
|
return ("q", "h")
|
|
|
|
|
|
# Gets sorted and turned into a list
|
|
assert ["h", "q"] == dir(B())
|
|
|
|
# This calls type.__dir__ so isn't changed (but inheritance works)!
|
|
assert "test" in dir(A)
|
|
|
|
|
|
# eval() takes any mapping-like type, so dir() must support them
|
|
# TODO: eval() should take any mapping as locals, not just dict-derived types
|
|
class A(dict):
|
|
def __getitem__(self, x):
|
|
return dir
|
|
|
|
def keys(self):
|
|
yield 6
|
|
yield 5
|
|
|
|
|
|
assert eval("dir()", {}, A()) == [5, 6]
|
|
|
|
import socket
|
|
|
|
assert "AF_INET" in dir(socket)
|