Python uses something called 'duck typing'. If an object walks like a duck and quacks like a duck, then it's a duck. Think of 'walk' and 'quack' as object methods. As long as those methods exist on the object, then they can be called. So your cargo can be anything as long as all of the methods you call actually exist on it.
A Java analogy that might help is if you simply imagine Node.cargo as the base Object class, and somewhere else in your code you might explicitly cast it before calling a method. If the cast fails, then you get an exception. The difference with Python is that you don't cast before calling the method, and instead it just checks to see whether that method exists on the object (that is, does it walk like a duck).
So in this example, if we set up a bunch of nodes that support the len() function, and then iterate over the nodes, everything is fine:
node3 = Node('last')
node2 = Node(['m', 'i', 'd'], node3)
node1 = Node(('fir', 'st'), node2)
def visit_all(node):
while node:
print(type(node.cargo), node, len(node.cargo))
node = node.next
>>> visit_all(node1)
<class 'tuple'> ('fir', 'st') 2
<class 'list'> ['m', 'i', 'd'] 3
<class 'str'> last 4
However, if we try to pass in a node that doesn't support len(), then we get an exception, similar to a Java ClassCastException.
node0 = Node(0, node1)
>>> visit_all(node0)
TypeError: object of type 'int' has no len()
So with all of that said, if you want to group together a movie title, Rating, Genre, etc. then you would likely store those in a separate class, and not inside Node. If your grouped data is immutable, you could also look at using a namedtuple. Again, think of cargo as a Java Object that you don't have to explicitly cast before calling its methods or properties.
EDIT:
OP requested an explicit example of having Node store a custom class.
class Movie(object):
def __init__(self, title, rating, actors):
self.title = title
self.director = director
self.actors = actors
node = Node('Some Movie', 'PG', ('John Doe', 'Jane Doe'))
>>> print(node.cargo.title)
Some Movie
Or if the Movie class can be immutable:
from collections import namedtuple
Movie = namedtuple('Movie', ['title', 'rating', 'actors'])
node = Node('Some Movie', 'PG', ('John Doe', 'Jane Doe'))
>>> print(node.cargo.rating)
PG