mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +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()
							 |