Problem with wp_enqueue_scripts in plugin

Because calc_script is inside your class, it’s not publicly available like a regular function. So, change your enqueue call to this:

add_action( 'wp_enqueue_scripts', array( $this , 'calc_script' ) );

And make calc_script() public.

Edit: Your add_action() is in the class as well, it needs to be in another function, preferably one hooked to the init action.

Second Edit: Added working example from a plugin on a production site, just changed the namespace and edited for simplicity as we’re only hooking one action in this case. Assuming the css file is in your plugin root directory and this is the initial plugin file, i.e. where you have the: /* Plugin Name: My Plugin */ declaration at the top.

$go = new my_plugin;
class my_plugin {

    public function __construct() {
        add_action( 'wp_enqueue_scripts' , array( $this , 'enqueue_styles' ) );
    }

    public function enqueue_styles() {
        wp_enqueue_style( 'my_stylesheet.css' , plugins_url()."https://wordpress.stackexchange.com/".basename(dirname(__FILE__)).'/my_stylesheet.css' );
    }
}

Last Edit Hopefully!: I saw that your original class is hooked onto widgets_init. That’s the likely culprit, that fires too late I believe. Put your wp_enqueue_script in a different class or remove it from the class. Just make sure to add a prefix to your functions/class names.