TypeError: isinstance() arg 2 must be a type or tuple of types
If you're like me, you've probably tried:
isinstance(my_var, [list, tuple])
only to get:
TypeError: isinstance() arg 2 must be a type or tuple of types
Now I fully understand the issue (the error message is clear) and how to fix it.
I also understand the difference between a list and a tuple (mutable vs unmutable).
However, what I'm trying to understand is what the tradeoffs are for the Python interpreter to also allow for a list to be provided as isinstance arg 2? (The code anyway already needs to check whether the argument is a scalar or a tuple)
If you're like me, it would have saved quite a few having to go back-n-forth iterations applying fixes, so I'm curious if perhaps there are performance or other reasons for Python standard functions to not mix the acceptance of lists and tuples here?
python tuples typeerror immutability isinstance
|
show 3 more comments
If you're like me, you've probably tried:
isinstance(my_var, [list, tuple])
only to get:
TypeError: isinstance() arg 2 must be a type or tuple of types
Now I fully understand the issue (the error message is clear) and how to fix it.
I also understand the difference between a list and a tuple (mutable vs unmutable).
However, what I'm trying to understand is what the tradeoffs are for the Python interpreter to also allow for a list to be provided as isinstance arg 2? (The code anyway already needs to check whether the argument is a scalar or a tuple)
If you're like me, it would have saved quite a few having to go back-n-forth iterations applying fixes, so I'm curious if perhaps there are performance or other reasons for Python standard functions to not mix the acceptance of lists and tuples here?
python tuples typeerror immutability isinstance
4
Analagous and relevant stackoverflow.com/a/45118023/6260170
– Chris_Rands
Nov 23 '18 at 21:38
2
This reads more like a rant than a question. Furthermore, it's not something that's really answerable except by the python core team. All languages make questionable decisions.
– Jared Smith
Nov 23 '18 at 21:40
1
@JaredSmith, sorry, not meant to be a rant. Just trying to learn what the pros/cons would be for Python to also accept a list in cases like these? I've clarified the motivation behind my question a bit.
– Hans Bouwmeester
Nov 23 '18 at 21:50
It's a reasonable question, but read the answer I linked to above, there really isn't any reason to accept a list here. However, unlike the str.startswith case, it doesn't have the argument that you need a special case for a single string
– Chris_Rands
Nov 23 '18 at 22:01
The link is interesting read. Tnx. However, I would argue that assuming "all-things-being-equal" holds (which I'm not sure it does here?), user-friendliness is an important item also?
– Hans Bouwmeester
Nov 23 '18 at 22:09
|
show 3 more comments
If you're like me, you've probably tried:
isinstance(my_var, [list, tuple])
only to get:
TypeError: isinstance() arg 2 must be a type or tuple of types
Now I fully understand the issue (the error message is clear) and how to fix it.
I also understand the difference between a list and a tuple (mutable vs unmutable).
However, what I'm trying to understand is what the tradeoffs are for the Python interpreter to also allow for a list to be provided as isinstance arg 2? (The code anyway already needs to check whether the argument is a scalar or a tuple)
If you're like me, it would have saved quite a few having to go back-n-forth iterations applying fixes, so I'm curious if perhaps there are performance or other reasons for Python standard functions to not mix the acceptance of lists and tuples here?
python tuples typeerror immutability isinstance
If you're like me, you've probably tried:
isinstance(my_var, [list, tuple])
only to get:
TypeError: isinstance() arg 2 must be a type or tuple of types
Now I fully understand the issue (the error message is clear) and how to fix it.
I also understand the difference between a list and a tuple (mutable vs unmutable).
However, what I'm trying to understand is what the tradeoffs are for the Python interpreter to also allow for a list to be provided as isinstance arg 2? (The code anyway already needs to check whether the argument is a scalar or a tuple)
If you're like me, it would have saved quite a few having to go back-n-forth iterations applying fixes, so I'm curious if perhaps there are performance or other reasons for Python standard functions to not mix the acceptance of lists and tuples here?
python tuples typeerror immutability isinstance
python tuples typeerror immutability isinstance
edited Nov 23 '18 at 21:53
Hans Bouwmeester
asked Nov 23 '18 at 21:27
Hans BouwmeesterHans Bouwmeester
6017
6017
4
Analagous and relevant stackoverflow.com/a/45118023/6260170
– Chris_Rands
Nov 23 '18 at 21:38
2
This reads more like a rant than a question. Furthermore, it's not something that's really answerable except by the python core team. All languages make questionable decisions.
– Jared Smith
Nov 23 '18 at 21:40
1
@JaredSmith, sorry, not meant to be a rant. Just trying to learn what the pros/cons would be for Python to also accept a list in cases like these? I've clarified the motivation behind my question a bit.
– Hans Bouwmeester
Nov 23 '18 at 21:50
It's a reasonable question, but read the answer I linked to above, there really isn't any reason to accept a list here. However, unlike the str.startswith case, it doesn't have the argument that you need a special case for a single string
– Chris_Rands
Nov 23 '18 at 22:01
The link is interesting read. Tnx. However, I would argue that assuming "all-things-being-equal" holds (which I'm not sure it does here?), user-friendliness is an important item also?
– Hans Bouwmeester
Nov 23 '18 at 22:09
|
show 3 more comments
4
Analagous and relevant stackoverflow.com/a/45118023/6260170
– Chris_Rands
Nov 23 '18 at 21:38
2
This reads more like a rant than a question. Furthermore, it's not something that's really answerable except by the python core team. All languages make questionable decisions.
– Jared Smith
Nov 23 '18 at 21:40
1
@JaredSmith, sorry, not meant to be a rant. Just trying to learn what the pros/cons would be for Python to also accept a list in cases like these? I've clarified the motivation behind my question a bit.
– Hans Bouwmeester
Nov 23 '18 at 21:50
It's a reasonable question, but read the answer I linked to above, there really isn't any reason to accept a list here. However, unlike the str.startswith case, it doesn't have the argument that you need a special case for a single string
– Chris_Rands
Nov 23 '18 at 22:01
The link is interesting read. Tnx. However, I would argue that assuming "all-things-being-equal" holds (which I'm not sure it does here?), user-friendliness is an important item also?
– Hans Bouwmeester
Nov 23 '18 at 22:09
4
4
Analagous and relevant stackoverflow.com/a/45118023/6260170
– Chris_Rands
Nov 23 '18 at 21:38
Analagous and relevant stackoverflow.com/a/45118023/6260170
– Chris_Rands
Nov 23 '18 at 21:38
2
2
This reads more like a rant than a question. Furthermore, it's not something that's really answerable except by the python core team. All languages make questionable decisions.
– Jared Smith
Nov 23 '18 at 21:40
This reads more like a rant than a question. Furthermore, it's not something that's really answerable except by the python core team. All languages make questionable decisions.
– Jared Smith
Nov 23 '18 at 21:40
1
1
@JaredSmith, sorry, not meant to be a rant. Just trying to learn what the pros/cons would be for Python to also accept a list in cases like these? I've clarified the motivation behind my question a bit.
– Hans Bouwmeester
Nov 23 '18 at 21:50
@JaredSmith, sorry, not meant to be a rant. Just trying to learn what the pros/cons would be for Python to also accept a list in cases like these? I've clarified the motivation behind my question a bit.
– Hans Bouwmeester
Nov 23 '18 at 21:50
It's a reasonable question, but read the answer I linked to above, there really isn't any reason to accept a list here. However, unlike the str.startswith case, it doesn't have the argument that you need a special case for a single string
– Chris_Rands
Nov 23 '18 at 22:01
It's a reasonable question, but read the answer I linked to above, there really isn't any reason to accept a list here. However, unlike the str.startswith case, it doesn't have the argument that you need a special case for a single string
– Chris_Rands
Nov 23 '18 at 22:01
The link is interesting read. Tnx. However, I would argue that assuming "all-things-being-equal" holds (which I'm not sure it does here?), user-friendliness is an important item also?
– Hans Bouwmeester
Nov 23 '18 at 22:09
The link is interesting read. Tnx. However, I would argue that assuming "all-things-being-equal" holds (which I'm not sure it does here?), user-friendliness is an important item also?
– Hans Bouwmeester
Nov 23 '18 at 22:09
|
show 3 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53453117%2ftypeerror-isinstance-arg-2-must-be-a-type-or-tuple-of-types%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53453117%2ftypeerror-isinstance-arg-2-must-be-a-type-or-tuple-of-types%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
4
Analagous and relevant stackoverflow.com/a/45118023/6260170
– Chris_Rands
Nov 23 '18 at 21:38
2
This reads more like a rant than a question. Furthermore, it's not something that's really answerable except by the python core team. All languages make questionable decisions.
– Jared Smith
Nov 23 '18 at 21:40
1
@JaredSmith, sorry, not meant to be a rant. Just trying to learn what the pros/cons would be for Python to also accept a list in cases like these? I've clarified the motivation behind my question a bit.
– Hans Bouwmeester
Nov 23 '18 at 21:50
It's a reasonable question, but read the answer I linked to above, there really isn't any reason to accept a list here. However, unlike the str.startswith case, it doesn't have the argument that you need a special case for a single string
– Chris_Rands
Nov 23 '18 at 22:01
The link is interesting read. Tnx. However, I would argue that assuming "all-things-being-equal" holds (which I'm not sure it does here?), user-friendliness is an important item also?
– Hans Bouwmeester
Nov 23 '18 at 22:09