
- Python - Home
- Python - Overview
- Python - History
- Python - Features
- Python vs C++
- Python - Hello World Program
- Python - Application Areas
- Python - Interpreter
- Python - Environment Setup
- Python - Virtual Environment
- Python - Basic Syntax
- Python - Variables
- Python - Private Variables
- Python - Data Types
- Python - Type Casting
- Python - Unicode System
- Python - Literals
- Python - Operators
- Python - Arithmetic Operators
- Python - Comparison Operators
- Python - Assignment Operators
- Python - Logical Operators
- Python - Bitwise Operators
- Python - Membership Operators
- Python - Identity Operators
- Python - Operator Precedence
- Python - Comments
- Python - User Input
- Python - Numbers
- Python - Booleans
- Python - Control Flow
- Python - Decision Making
- Python - If Statement
- Python - If else
- Python - Nested If
- Python - Match-Case Statement
- Python - Loops
- Python - for Loops
- Python - for-else Loops
- Python - While Loops
- Python - break Statement
- Python - continue Statement
- Python - pass Statement
- Python - Nested Loops
- Python Functions & Modules
- Python - Functions
- Python - Default Arguments
- Python - Keyword Arguments
- Python - Keyword-Only Arguments
- Python - Positional Arguments
- Python - Positional-Only Arguments
- Python - Arbitrary Arguments
- Python - Variables Scope
- Python - Function Annotations
- Python - Modules
- Python - Built in Functions
- Python Strings
- Python - Strings
- Python - Slicing Strings
- Python - Modify Strings
- Python - String Concatenation
- Python - String Formatting
- Python - Escape Characters
- Python - String Methods
- Python - String Exercises
- Python Lists
- Python - Lists
- Python - Access List Items
- Python - Change List Items
- Python - Add List Items
- Python - Remove List Items
- Python - Loop Lists
- Python - List Comprehension
- Python - Sort Lists
- Python - Copy Lists
- Python - Join Lists
- Python - List Methods
- Python - List Exercises
- Python Tuples
- Python - Tuples
- Python - Access Tuple Items
- Python - Update Tuples
- Python - Unpack Tuples
- Python - Loop Tuples
- Python - Join Tuples
- Python - Tuple Methods
- Python - Namedtuple
- Python - Tuple Exercises
- Python Sets
- Python - Sets
- Python - Access Set Items
- Python - Add Set Items
- Python - Remove Set Items
- Python - Loop Sets
- Python - Join Sets
- Python - Copy Sets
- Python - Set Operators
- Python - Set Methods
- Python - Set Exercises
- Python Dictionaries
- Python - Dictionaries
- Python - Access Dictionary Items
- Python - Change Dictionary Items
- Python - Add Dictionary Items
- Python - Remove Dictionary Items
- Python - Dictionary View Objects
- Python - Loop Dictionaries
- Python - Copy Dictionaries
- Python - Nested Dictionaries
- Python - Dictionary Methods
- Python - Dictionary Exercises
- Python Arrays
- Python - Arrays
- Python - Access Array Items
- Python - Add Array Items
- Python - Remove Array Items
- Python - Loop Arrays
- Python - Copy Arrays
- Python - Reverse Arrays
- Python - Sort Arrays
- Python - Join Arrays
- Python - Array Methods
- Python - Array Exercises
- Python File Handling
- Python - File Handling
- Python - Write to File
- Python - Read Files
- Python - Renaming and Deleting Files
- Python - Directories
- Python - File Methods
- Python - OS File/Directory Methods
- Python - OS Path Methods
- Object Oriented Programming
- Python - OOPs Concepts
- Python - Classes & Objects
- Python - Class Attributes
- Python - Class Methods
- Python - Static Methods
- Python - Constructors
- Python - Access Modifiers
- Python - Inheritance
- Python - Multiple Inheritance
- Python - Polymorphism
- Python - Method Overriding
- Python - Method Overloading
- Python - Dynamic Binding
- Python - Dynamic Typing
- Python - Abstraction
- Python - Encapsulation
- Python - Interfaces
- Python - Packages
- Python - Inner Classes
- Python - Anonymous Class and Objects
- Python - Singleton Class
- Python - Wrapper Classes
- Python - Enums
- Python - Reflection
- Python Errors & Exceptions
- Python - Syntax Errors
- Python - Exceptions
- Python - try-except Block
- Python - try-finally Block
- Python - Raising Exceptions
- Python - Exception Chaining
- Python - Nested try Block
- Python - User-defined Exception
- Python - Logging
- Python - Assertions
- Python - Warnings
- Python - Built-in Exceptions
- Python Multithreading
- Python - Multithreading
- Python - Thread Life Cycle
- Python - Creating a Thread
- Python - Starting a Thread
- Python - Joining Threads
- Python - Naming Thread
- Python - Thread Scheduling
- Python - Thread Pools
- Python - Main Thread
- Python - Thread Priority
- Python - Daemon Threads
- Python - Synchronizing Threads
- Python Synchronization
- Python - Inter-thread Communication
- Python - Thread Deadlock
- Python - Interrupting a Thread
- Python Networking
- Python - Networking
- Python - Socket Programming
- Python - URL Processing
- Python - Generics
- Python Libraries
- NumPy Tutorial
- Pandas Tutorial
- SciPy Tutorial
- Matplotlib Tutorial
- Django Tutorial
- OpenCV Tutorial
- Python Miscellenous
- Python - Date & Time
- Python - Maths
- Python - Iterators
- Python - Generators
- Python - Closures
- Python - Decorators
- Python - Recursion
- Python - Reg Expressions
- Python - PIP
- Python - Database Access
- Python - Weak References
- Python - Serialization
- Python - Templating
- Python - Output Formatting
- Python - Performance Measurement
- Python - Data Compression
- Python - CGI Programming
- Python - XML Processing
- Python - GUI Programming
- Python - Command-Line Arguments
- Python - Docstrings
- Python - JSON
- Python - Sending Email
- Python - Further Extensions
- Python - Tools/Utilities
- Python - GUIs
- Python Advanced Concepts
- Python - Abstract Base Classes
- Python - Custom Exceptions
- Python - Higher Order Functions
- Python - Object Internals
- Python - Memory Management
- Python - Metaclasses
- Python - Metaprogramming with Metaclasses
- Python - Mocking and Stubbing
- Python - Monkey Patching
- Python - Signal Handling
- Python - Type Hints
- Python - Automation Tutorial
- Python - Humanize Package
- Python - Context Managers
- Python - Coroutines
- Python - Descriptors
- Python - Diagnosing and Fixing Memory Leaks
- Python - Immutable Data Structures
- Python Useful Resources
- Python - Questions & Answers
- Python - Interview Questions & Answers
- Python - Online Quiz
- Python - Quick Guide
- Python - Reference
- Python - Cheatsheet
- Python - Projects
- Python - Useful Resources
- Python - Discussion
- Python Compiler
- NumPy Compiler
- Matplotlib Compiler
- SciPy Compiler
Python - Warnings
In Python, a warning is a message that indicates that something unexpected happened while running your code. Unlike an error, a warning will not stop the program from running. Warnings are used to alert the user about potential issues or deprecated features in the code.
For example, if you are using a deprecated module in your code, you will get a warning message saying that the module is deprecated and will be removed in future versions of Python. But your code may still work as expected.
Display a Warning Message
To display a warning message in Python, you can use the warn() function from the warnings module. Here is an example −
import warnings # Normal message print("TutorialsPoint") # Warning message warnings.warn("You got a warning!")
The output of the above code will be:
TutorialsPoint Warnings/Errors: /home/cg/root/d732ac89/main.py:7: UserWarning: You got a warning! warnings.warn("You got a warning!")
Types of Warnings Classes
The warning in python is handled by a set of classes based upon the exception handling mechanism. The most common types of warnings are −
1. UserWarning Class
The UserWarning is the default warning class in Python. If you have any warning that does not fall into any of the other categories, it will be classified as a UserWarning. To specify a UserWarning, use UserWarning as the second argument to the warn() function. Here is an example −
import warnings # Warning message warnings.warn("You got a warning!", UserWarning)
2. DeprecationWarning Class
The DeprecationWarning is used to indicate that a feature or module is deprecated and will be removed in future versions of Python. To specify a DeprecationWarning, use DeprecationWarning as the second argument to the warn() function. Here is an example −
import warnings # Warning message warnings.warn("This feature is deprecated!", DeprecationWarning)
3. SyntaxWarning Class
The SyntaxWarning is used to indicate that there is a syntax-related issue in the code, but it is not severe enough to raise a SyntaxError. To specify a SyntaxWarning, use SyntaxWarning as the second argument to the warn() function. Here is an example −
import warnings # Warning message warnings.warn("This is a syntax warning!", SyntaxWarning) # Function with potential syntax issue def func(x): return x is 10 # using "is" instead of "=="
4. RuntimeWarning Class
The RuntimeWarning is a base class used to indicate that there is a doubtful issue related to runtime. To specify a RuntimeWarning, use RuntimeWarning as the second argument to the warn() function. Here is an example −
import warnings # Warning message warnings.warn("This is a runtime warning!", RuntimeWarning)
5. ImportWarning Class
The ImportWarning is used to indicate that there is an issue related to the import of a module. To specify an ImportWarning, use ImportWarning as the second argument to the warn() function. Here is an example −
import warnings # Warning message warnings.warn("This is an import warning!", ImportWarning)
Warning Filters
Warning filters are used to control the behavior of warning messages in Python. For example, if you feel that a warning is severe, you can convert it into an error so that program will stop running. Or, if you feel that a warning is not important, you can ignore it.
The filterwarnings() function from the warnings module can be used to specify warning filters. It can take following parameters:
- default − This is the default behavior. It displays the first occurrence of each warning for each location where the warning is issued.
- always − This option will always display the warning message, even if it has been displayed before.
- ignore − This option is used to prevent the display of warning messages.
- error − This option converts the warning into an exception, which will stop the program from running.
- module − This option will print the first occurrence of matching warnings for each module where the warning is issued.
- once − This option will print the first occurrence of matching warnings, regardless of the location.
Example: Turn Warning to an Error
Here is a simple python code that shows how to turn warnings into errors −
import warnings # Turn warning into an error warnings.filterwarnings("error", category=UserWarning) try: warnings.warn("This is a warning!", UserWarning) except UserWarning as e: print("Caught as error:", e)
The output of the above code will be −
Caught as error: This is a warning!
Example: Ignore Warnings
Here is a simple python code that shows how to ignore warnings −
import warnings # Ignore all warnings warnings.filterwarnings("ignore") print("Warning message: ") warnings.warn("This warning will be ignored!")
The output of the above code will be:
Warning message:
Function Available in Warning Module
The warnings module has couple of functions that you can use to manage warnings in your Python code. Here are some of the most commonly used functions −
1. warnings.warn()
This function is used to issue a warning message. You can specify the warning message and the category of the warning. The syntax of the function is −
warnings.warn(message, category=None, stacklevel=1, source=None, *, skip_file_prefixes=())
Here, message is the warning message you want to display, and category is the type of warning (e.g., UserWarning, DeprecationWarning, etc.).
The stacklevel argument can be used by wrapper functions written in Python to adjust the stack level of the warning. The skip_file_prefixes keyword argument can be used to indicate which stack frames are ignored when counting stack levels.
2. warnings.showwarning()
The showwarning() function is used to write warning messages to a file. Here is the syntax of the function:
warnings.showwarning(message, category, filename, lineno, file=None, line=None)
Here, message is the warning message, category is the type of warning, filename is the name of the file where the warning should be saved, lineno is the line number where the warning occurred.
3. warnings.warn_explicit()
The warn_explicit() function is used to send a warning message with more control over the warning's context. It can be used to explicitly pass the message, category, filename and line number, and optionally the module name and the registry. Here is the syntax of the function −
warnings.warn_explicit(message, category, filename, lineno, module=None, registry=None, module_globals=None, source=None)
The parameters have same meaning as in the previous functions.
4. warnings.filterwarnings()
The filterwarnings() function is used to set the warning filters. we have already disscussed how to use this function to ignore, always display, or convert warnings into errors. Here is the proper syntax of the function −
warnings.filterwarnings(action, message='', category=Warning, module='', lineno=0, append=False)
The parameter "action" can take any of the following values: "default", "always", "ignore", "error", "module", or "once". The other parameters are optional.
5. warnings.simplefilter()
The simplefilter() function is a simpler interface to the filterwarnings() function. It is used to set a filter for a specific category of warnings. Here is the syntax of the function −
warnings.simplefilter(action, category=Warning, lineno=0, append=False)
The parameters have same meaning as in the previous functions.
6. warnings.resetwarnings()
The resetwarnings() function is used to reset the warning filters to their default state. This can be useful if you want to clear any custom warning filters you have set. Here is the syntax of the function −
warnings.resetwarnings()
This function does not take any parameters.
Conclusion
In this chapter, we learned about warnings in Python. Warnings are different from errors because they will not stop the program from running. It is just used to alert the programmer about potential issues in the code. The warnings module provides a way to issue warning messages and control their behavior.