python – Existe uma maneira de atribuir valores à variáveis simbólicas após derivá-las utilizando sympy?

Olá, preciso escrever um código que derive uma função informada pelo usuário e depois atribua valores às variáveis para realizar o cálculo. O problema é que é necessário que as variáveis sejam simbólicas para o sympy derivá-las e caso assumam algum valor numérico, o sympy não realiza a derivação. Aqui o que já tentei:

from sympy import diff, var

r, h = var('r h')

def derivadaVolume():
    volume = 3.14*(r**2)*h
    return diff(volume, h) 

h = 3    
r = 2
derivadaVolume()

O erro: ValueError: First variable cannot be a number: 3

Porém, se por exemplo, derivo em relação a r e atribuo valor apenas a h:

from sympy import diff, var

r, h = var('r h')

def derivadaVolume():
    volume = 3.14*(r**2)*h
    return diff(volume, r) 

h = 3    
derivadaVolume()

Output: 18.84𝑟

Também já tentei atribuir a uma variável a derivada retornada na função derivadaVolume() mas ao alterar os valores de r e h, nada muda no valor da variável:

from sympy import diff, var

r, h = var('r h')

def derivadaVolume():
    volume = 3.14*(r**2)*h
    return diff(volume, r) 
    
derivada = derivadaVolume()
h = 3
r = 2
derivada

Output: 6.28ℎ𝑟

Alguém sabe se é possível resolver esse problema? Existe alguma outra biblioteca que torne isso capaz?

Muito obrigado.