logo
down
shadow

How to define a type hint to a argument (the argument's value is a class, all expected value is a subclass of a certain


How to define a type hint to a argument (the argument's value is a class, all expected value is a subclass of a certain

Content Index :

How to define a type hint to a argument (the argument's value is a class, all expected value is a subclass of a certain
Tag : python , By : Robert Daniel Pickar
Date : November 28 2020, 12:01 PM

will be helpful for those in need If you are trying to say that arg must be an instance of either MyClass or some subtype of MyClass, just do this:
class MyClass(object): pass
class Child(MyClass): pass

def my_function(arg: MyClass) -> None:
    pass

my_function(MyClass())  # Type checks
my_function(Child())    # Type checks
my_function(3.14)       # Does not type check
from typing import Type

# ...snip...

def my_function_2(arg: Type[MyClass]) -> None:
    pass

my_function_2(MyClass)    # Type checks
my_function_2(Child)      # Type checks
my_function_2(int)        # Does not type check
my_function_2(MyClass())  # Does not type check

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

Define generic Type of parent class method depending on subclass Type in Java


Tag : java , By : eastcoastj
Date : March 29 2020, 07:55 AM
Hope that helps Is it possible to dynamically identify T as a return type depending on subclass Type? I want something like the following: , You want this:
public class Parent<T extends Parent<T>> {
    public T foo() {
        return (T)this;
    }
}

public class Child extends Parent<Child> {
    public void childMethod() {
        System.out.println("childMethod called");
    }
}

Child child = new Child();
child.foo().childMethod(); // compiles

PFObject subclass gets "Cannot convert value of type 'Match' to expected argument type '@noescape (AnyObject) throw


Tag : swift , By : user152423
Date : March 29 2020, 07:55 AM
I wish this help you Found the solution. It turns out that the objects method on the PFQueryTableViewController returns [AnyObject], so I need to cast it to [Match]
let objects = self?.matchesController.objects as! [PFObject]
/*!
 @abstract The array of instances of <PFObject> that is used as a data source.
 */
public var objects: [AnyObject]? { get }

Type hint for argument of type A in method of class A


Tag : python , By : user184406
Date : March 29 2020, 07:55 AM
this one helps. I'm trying to make use of type hints in Python 3.5.1 with following code: , Try this:
class A:

    def a(self, i: int, b: 'A'):
        pass

Using the class as a type hint for arguments in its methods


Tag : python , By : Bin
Date : March 29 2020, 07:55 AM
it should still fix some issue Because when it encounters Translate (while compiling the class body), Vector2 hasn't been defined yet (it is currently compiling, name binding hasn't been performed); Python naturally complains.
Since this is such a common scenario (type-hinting a class in the body of that class), you should use a forward reference to it by enclosing it in quotes:
class Vector2:    
    # __init__ as defined

    def Translate(self, pos: 'Vector2'):    
        self.x += pos.x
        self.y += pos.y
from typing import get_type_hints

get_type_hints(Vector2(1,2).Translate)
{'pos': __main__.Vector2}

Is it possible to type hint exclusively a class object but exclude subclass objects?


Tag : python , By : Tony Siu
Date : March 29 2020, 07:55 AM
hope this fix your issue No, this is not possible to do.
Fundamentally, the Python typing ecosystem assumes that you are following the Liskov substitution principle -- assumes that it is always safe to substitute a subclass in places designed to handle the parent.
from typing import final
# If you want to support Python 3.7 or earlier, pip-install 'typing_extensions'
# and do 'from typing_extensions import final' instead

@final
class A: pass

class B(A): pass
Related Posts Related QUESTIONS :
  • How to calculate each single element of a numpy array based on conditions
  • How do I change the width of Jupyter notebook's cell's left part?
  • Measure distance between lat/lon coordinates and utm coordinates
  • Installing megam for NLTK on Windows
  • filter dataframe on each value of a samn column have a specific value of another column in Panda\Python
  • Threading with pubsub throwing AssertionError: 'callableObj is not callable' in wxPython
  • Get grouped data from 2 dataframes with condition
  • How can I import all of sklearns regressors
  • How to take all elements except the first k
  • Whats wrong with my iteration list of lists from csv
  • Tensorflow Estimator API save image summary in eval mode
  • How to Pack with PyQt - how to make QFrame/Layout adapt to content
  • How do I get certain Time Range in Python
  • python doubly linked list - insertAfter node
  • Open .h5 file in Python
  • Joining a directory name with a binary file name
  • python, sort list with two arguments in compare function
  • Is it possible to print from Python using non-ANSI colors?
  • Pandas concat historical data using date minus some number of days
  • CV2: Import Error in Python OpenCV
  • Is it possible to do this loop in a one-liner?
  • invalid literal for int() with base 10: - django
  • Why does my code print a value that I have not assigned as yet?
  • the collatz func in automate boring stuff with python
  • How to find all possible combinations of parameters and funtions
  • about backpropagation deep neural network in tensorflow
  • Sort strings in pandas
  • How do access my flask app hosted in docker?
  • Replace the sentence include some text with Python regex
  • Counting the most common element in a 2D List in Python
  • logout a user from the system using a function in python
  • mp4 metadata not found but exists
  • Django: QuerySet with ExpressionWrapper
  • Pandas string search in list of dicts
  • Decryption from RSA encrypted string from sqlite is not the same
  • need of maximum value in int
  • a list of several tuples, how to extract the same of the first two elements in the small tuple in the large tuple
  • Display image of 2D Sinewaves in 3D
  • how to prevent a for loop from overwriting a dictionary?
  • How To Fix: RuntimeError: size mismatch in pyTorch
  • Concatenating two Pandas DataFrames while maintaining index order
  • Why does this not run into an infinite loop?
  • Python Multithreading no current event loop
  • Element Tree - Seaching for specific element value without looping
  • Ignore Nulls in pandas map dictionary
  • How do I get scrap data from web pages using beautifulsoup in python
  • Variable used, golobal or local?
  • I have a regex statement to pull all numbers out of a text file, but it only finds 77 out of the 81 numbers in the file
  • How do I create a dataframe of jobs and companies that includes hyperlinks?
  • Detect if user has clicked the 'maximized' button
  • Does flask_login automatically set the "next" argument?
  • Indents in python 3
  • How to create a pool of threads
  • Pandas giving IndexError on one dataframe but not on another similar dataframe
  • Django Rest Framework - Testing client.login doesn't login user, ret anonymous user
  • Running dag without dag file in airflow
  • Filling across a specified dimension of a numpy array
  • Python populating dataframe in pandas from text files
  • How to interpolate a single ("non-piecewise") cubic spline from a set of data points?
  • Divide 2 integers (leetcode 29) - recursion issue
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com