λ
Size: a a a
λ
p
def foo(name, __types={}, **kwargs):
if name in __types:
return __types[name](**kwargs)
else:
exec(f"class {name}:\npass")
__types[name] = exec(f"{name}")
obj = exec(f"{name}()")
if kwargs:
for k, v in kwargs.items():
setattr(obj, k, v)
return obj
obj1 = foo("Foo", a="b") # создаст тип Foo и вернёт объект Foo { a="b" }
obj2 = foo("Foo", a=1) # вернёт объект Foo { a=1 }
obj3 = foo("Some") # создаст тип Some и вернёт объект без полей
λ
def foo(name, __types={}, **kwargs):
if name in __types:
return __types[name](**kwargs)
else:
exec(f"class {name}:\npass")
__types[name] = exec(f"{name}")
obj = exec(f"{name}()")
if kwargs:
for k, v in kwargs.items():
setattr(obj, k, v)
return obj
obj1 = foo("Foo", a="b") # создаст тип Foo и вернёт объект Foo { a="b" }
obj2 = foo("Foo", a=1) # вернёт объект Foo { a=1 }
obj3 = foo("Some") # создаст тип Some и вернёт объект без полей
p
p
λ
p
λ
p
NL
def foo(name, __types={}, **kwargs):
if name in __types:
return __types[name](**kwargs)
else:
exec(f"class {name}:\npass")
__types[name] = exec(f"{name}")
obj = exec(f"{name}()")
if kwargs:
for k, v in kwargs.items():
setattr(obj, k, v)
return obj
obj1 = foo("Foo", a="b") # создаст тип Foo и вернёт объект Foo { a="b" }
obj2 = foo("Foo", a=1) # вернёт объект Foo { a=1 }
obj3 = foo("Some") # создаст тип Some и вернёт объект без полей
λ
λ
λ
p
NL
p
p
NL
pickle.load()
, разве нет?p
NL