#39 Add __str__ method to CachedSession
diff --git a/requests_cache/core.py b/requests_cache/core.py
index a4748c5..89149e0 100644
--- a/requests_cache/core.py
+++ b/requests_cache/core.py
@@ -66,6 +66,7 @@
                                                  backend_options)
         else:
             self.cache = backend
+        self._cache_name = cache_name
 
         if expire_after is not None and not isinstance(expire_after, timedelta):
             expire_after = timedelta(seconds=expire_after)
@@ -139,6 +140,15 @@
         finally:
             self._is_cache_disabled = False
 
+    def __repr__(self):
+        return (
+            "<CachedSession(%s('%s', ...), expire_after=%s, "
+            "allowable_methods=%s)>" % (
+                self.cache.__class__.__name__, self._cache_name,
+                self._cache_expire_after, self._cache_allowable_methods
+            )
+        )
+
 
 def install_cache(cache_name='cache', backend=None, expire_after=None,
                  allowable_codes=(200,), allowable_methods=('GET',),
diff --git a/tests/test_cache.py b/tests/test_cache.py
index fc84bf7..2ed2b7f 100644
--- a/tests/test_cache.py
+++ b/tests/test_cache.py
@@ -319,6 +319,11 @@
         self.assertFalse(s.get(url).from_cache)
         self.assertTrue(s.get(url).from_cache)
 
+    def test_str_and_repr(self):
+        s = repr(CachedSession(CACHE_NAME, CACHE_BACKEND, expire_after=10))
+        self.assertIn(CACHE_NAME, s)
+        self.assertIn("10", s)
+
 
 if __name__ == '__main__':
     unittest.main()