osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

how can I solve this problem simply and clearly


lampahome <pahome.chen at mirlab.org> writes:
> I have two categories A,B, and A has 2 items A1,A2, and B have 2 items B1,
> B2.
>
> I have two class A and B, and A will handle A1,A2, B handle B1,B2.
>
> I want to parse one of A1,A2,B1,B2 to script and generate the corresponding
> class(object).
>
> Ex: Both in class A and B, all have func1(), func2().
> What I thought to design is below:
> -------------------------------------------------
> ...
> def get_class(obj):
>     if obj == 'A1' or obj == 'A2':
>         return A(obj)
>      else:
>         return B(obj)
>
> # A = get_class(A1)

Try `A = get_class('A1')` (instead of `A = get_class(A1)`).

In Python, you must carefully distinquish between a name (such as
`A1`) and a string (such as `'A1'`). A name is used to refer
to something, previously "bound" to the name (e.g. via an assignment).
If you use a name not yet bound (like in your `get_class(A1)`),
you will get a `NameError`.