mirror of
https://github.com/pocketpy/pocketpy
synced 2025-11-07 20:20:17 +00:00
Compare commits
2 Commits
0031e87db4
...
a156aaa81c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a156aaa81c | ||
|
|
a7d83934c1 |
@ -85,18 +85,18 @@ def dir(obj=None):
|
||||
if obj is None:
|
||||
return list(globals().keys())
|
||||
|
||||
if hasattr(obj, "__dir__"):
|
||||
return obj.__dir__()
|
||||
|
||||
attributes = set()
|
||||
# Set object attributes.
|
||||
|
||||
if not isinstance(obj, type):
|
||||
if hasattr(obj, "__dir__"):
|
||||
return sorted(obj.__dir__())
|
||||
attributes.update(dir(type(obj)))
|
||||
|
||||
if hasattr(obj, "__dict__"):
|
||||
attributes.update(obj.__dict__.keys())
|
||||
|
||||
# Set type attributes.
|
||||
if not isinstance(obj, type):
|
||||
if hasattr(type(obj), "__dict__"):
|
||||
attributes.update(type(obj).__dict__.keys())
|
||||
if hasattr(obj, "__base__") and obj.__base__ is not None:
|
||||
attributes.update(dir(obj.__base__))
|
||||
|
||||
return sorted(attributes)
|
||||
|
||||
|
||||
@ -49,4 +49,20 @@ assert not all([True, False])
|
||||
assert not all([False, False])
|
||||
|
||||
assert list(enumerate([1,2,3])) == [(0,1), (1,2), (2,3)]
|
||||
assert list(enumerate([1,2,3], 1)) == [(1,1), (2,2), (3,3)]
|
||||
assert list(enumerate([1,2,3], 1)) == [(1,1), (2,2), (3,3)]
|
||||
|
||||
assert "__name__" in dir()
|
||||
|
||||
class Base:
|
||||
def inherited(): ...
|
||||
|
||||
class Test(Base):
|
||||
cls_attr = 'a'
|
||||
def __init__(self):
|
||||
self.self_attr = 1
|
||||
assert {"self_attr", "cls_attr", "inherited"}.issubset(dir(Test()))
|
||||
|
||||
class CustomDir:
|
||||
def __dir__(self):
|
||||
return ["custom"]
|
||||
assert ["custom"] == dir(CustomDir())
|
||||
Loading…
x
Reference in New Issue
Block a user