mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
	
	
		
			54 lines
		
	
	
	
		
			953 B
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
	
		
			953 B
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | 
 | ||
|  | 
 | ||
|  | """
 | ||
|  | The module for testing variable annotations. | ||
|  | Empty lines above are for good reason (testing for correct line numbers) | ||
|  | """
 | ||
|  | 
 | ||
|  | from typing import Optional | ||
|  | 
 | ||
|  | __annotations__[1] = 2 | ||
|  | 
 | ||
|  | class C: | ||
|  | 
 | ||
|  |     x = 5; y: Optional['C'] = None | ||
|  | 
 | ||
|  | from typing import Tuple | ||
|  | x: int = 5; y: str = x; f: Tuple[int, int] | ||
|  | 
 | ||
|  | class M(type): | ||
|  | 
 | ||
|  |     __annotations__['123'] = 123 | ||
|  |     o: type = object | ||
|  | 
 | ||
|  | (pars): bool = True | ||
|  | 
 | ||
|  | class D(C): | ||
|  |     j: str = 'hi'; k: str= 'bye' | ||
|  | 
 | ||
|  | from types import new_class | ||
|  | h_class = new_class('H', (C,)) | ||
|  | j_class = new_class('J') | ||
|  | 
 | ||
|  | class F(): | ||
|  |     z: int = 5 | ||
|  |     def __init__(self, x): | ||
|  |         pass | ||
|  | 
 | ||
|  | class Y(F): | ||
|  |     def __init__(self): | ||
|  |         super(F, self).__init__(123) | ||
|  | 
 | ||
|  | class Meta(type): | ||
|  |     def __new__(meta, name, bases, namespace): | ||
|  |         return super().__new__(meta, name, bases, namespace) | ||
|  | 
 | ||
|  | class S(metaclass = Meta): | ||
|  |     x: str = 'something' | ||
|  |     y: str = 'something else' | ||
|  | 
 | ||
|  | def foo(x: int = 10): | ||
|  |     def bar(y: List[str]): | ||
|  |         x: str = 'yes' | ||
|  |     bar() |