Python Forum
class needs to refer a different class
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
class needs to refer a different class
#17
Skaperen Wrote:the objective is to return an instance of file class instead of an instance of itself
I'm not sure I understand what you are trying to do but calling a class' constructor to get an object of a different type seems completely inappropriate. More specifically, __init__() methods don't even use the return statement in Python.

You could achieve the same (misleading) effect by overwriting the name of the class

class Foo:
    pass

class Bar:
    pass

_c_foo = Foo

def Foo(condition):
    if condition:
        return _c_foo()
    else:
        return Bar()

if __name__ == '__main__':
    f = Foo(0) # returns a Bar instance while pretending to create a Foo instance.
Reply


Messages In This Thread
RE: class needs to refer a different class - by Gribouillis - Jul-21-2021, 06:39 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  is ValueError a class? Skaperen 11 2,636 Mar-29-2023, 02:25 AM
Last Post: Skaperen
  extracting a function/class/method from code Skaperen 5 2,303 Mar-30-2022, 12:13 AM
Last Post: Skaperen
  first class objects Skaperen 0 962 Jan-22-2022, 02:53 AM
Last Post: Skaperen
  returning a different class Skaperen 4 2,144 Oct-20-2021, 12:51 AM
Last Post: Skaperen
  getting my head arounnd __enter__() for my new class Skaperen 5 2,554 Nov-30-2020, 09:46 AM
Last Post: Gribouillis
  find the class for indexed counting Skaperen 4 2,033 Sep-29-2020, 03:26 AM
Last Post: Skaperen
  namespaces when defining a class Skaperen 3 2,146 Jul-03-2020, 06:34 PM
Last Post: Gribouillis
  a file-like class implementation Skaperen 2 2,086 Apr-22-2020, 02:59 AM
Last Post: Skaperen
  making a generator class? Skaperen 2 2,102 Apr-01-2020, 12:34 AM
Last Post: Skaperen
  single-instance class Skaperen 3 2,569 Mar-05-2020, 12:47 AM
Last Post: Skaperen

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020